关于用Xpath读取多级并全是相同元素的XML文件的问题,版主别删,我在XML版块提问,无人回答,急。

lnnweb1 2013-05-24 10:46:11
<?xml version="1.0" encoding="utf-8"?>
<部门职务>
<node Value="20130524013802" Text="后勤" NavigateUrl="">
<node Value="20130524013824" Text="财务部" NavigateUrl="">
<node Value="20130524013905" Text="经理" NavigateUrl="">
</node>
<node Value="20130524013911" Text="主管" NavigateUrl="">
</node>
<node Value="20130524013922" Text="员工" NavigateUrl="">
</node>
<node Value="20130524013931" Text="实习生" NavigateUrl="">
</node>
</node>
<node Value="20130524013831" Text="安保部" NavigateUrl="">
</node>
<node Value="20130524013840" Text="工程部" NavigateUrl="">
</node>
<node Value="20130524013846" Text="企划部" NavigateUrl="">
</node>
<node Value="20130524013854" Text="保洁部" NavigateUrl="">
</node>
</node>
<node Value="20130524013809" Text="厨房" NavigateUrl="">
</node>
<node Value="20130524013814" Text="前台" NavigateUrl="">
</node>
</部门职务>


如图:treeview控件读出来是这样的

现在有三个Dropdownlist1,Dropdownlist2,Dropdownlist3
我想分别取出的效果是:
dropdownlist1如何读取 “后勤”“厨房”“前台”
Dropdownlist2如何读取 “财务部”“安保部”“工程部”“企划部”“保洁部”
Dropdownlist3如何读取 “经理”“主管”“员工”“实习生”
用xpath可以达到效果吗?如果不能,还有其他办法吗?
...全文
214 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
引用 2 楼 lnnweb1 的回复:
回1楼,这段代码不是固定的,前台,随时会进行修改,‘后勤’随时会改为其他的名称。不过还是谢谢您的回答。
这只是一个demo啦,具体的还要看参数嘛。
lnnweb1 2013-05-25
  • 打赏
  • 举报
回复
回1楼,这段代码不是固定的,前台,随时会进行修改,‘后勤’随时会改为其他的名称。不过还是谢谢您的回答。
  • 打赏
  • 举报
回复
用LinqToXml可以达到你的效果 using System.Xml.Linq;

  var query1 = from ele in XElement.Load("2.xml").Elements("node")
                         where ele != null
                         select ele;
            var query2 = (
                          from ele in XElement.Load("2.xml").Elements("node")
                          where ele != null && ele.Attribute("Text").Value == "后勤"
                          let ets = ele.Elements("node")
                          select ets
                         ).FirstOrDefault();
            var query3 = (
                         from ele in XElement.Load("2.xml").Elements("node")
                         where ele != null && ele.Attribute("Text").Value == "后勤"
                         let dept = (ele.Elements("node").Where(x => x.Attribute("Text").Value == "财务部").FirstOrDefault())
                         let worker = dept.Elements("node")
                         select worker
                         ).FirstOrDefault();
            Console.WriteLine("=========第一级节点===========");
            foreach (var item in query1)
            {
                Console.WriteLine(item.Attribute("Text").Value);
            }
            Console.WriteLine("=========第二级节点===========");
            foreach (var item in query2)
            {
                Console.WriteLine(item.Attribute("Text").Value);
            }
            Console.WriteLine("=========第三级节点===========");
            foreach (var item in query3)
            {
                Console.WriteLine(item.Attribute("Text").Value);
            }
            Console.Read();

62,050

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧