C#中如何遍历xml并取对应节点的值

dogxuefeng 2011-03-08 05:24:05
<system>
<caption>开票子系统</caption>
<nodes step="1" flag="0">
<control>
<action>keyboard</action>
<key>ENTER</key>
</control>
</nodes>
</system>
<system>
<caption>等候提示</caption>
</system>
<system>
<caption>操作员登录</caption>
<nodes step="2" flag="0">
<data>
<value>string</value>
</data>
</nodes>
<nodes step="3" flag="0">
<control>
<action>keyboard</action>
<key>ENTER</key>
</control>
</nodes>
</system>
<system>
<caption>系统</caption>
<nodes step="4" flag="0">
<control>
<action>keyboard</action>
<key>ALT_LOCK>fy<ALT_UNLOCK</key>
</control>
</nodes>
<nodes step="5" flag="0">
<control>
<action>keyboard</action>
<key>ALT_LOCK>c<ALT_UNLOCK</key>
</control>
</nodes>
<nodes step="6" flag="0">
<control>
<action>keyboard</action>
<key>LEFT</key>
</control>
</nodes>
<nodes step="7" flag="0">
<control>
<action>keyboard</action>
<key>DOWN</key>
</control>
</nodes>
<nodes step="8" flag="0">
<control>
<action>keyboard</action>
<key>ENTER</key>
</control>
</nodes>
</system>
怎样区分每个System节点和nodes节点呢?
...全文
713 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
小丫头 2011-03-08
  • 打赏
  • 举报
回复
var xdoc = XDocument.Load("路径");
var nodes = xdoc.Descendants("nodes");
foreach(var node in nodes)
Console.WriteLine(node);
xiao_p 2011-03-08
  • 打赏
  • 举报
回复
看XML文档,一定要注意XML是一个单根的树形结构,这样就好理解多了。

查询xml中的节点,应该是用xpath,xpath是xml内置的路径查询语言,支持很多种方式的查询
至于SelectSingleNode,SelectNodes这样的方法不过是.net对dom操作的封装。

按照楼主的问题,如果是区分这两种节点的话,很明显的,system节点是根节点
而node节点则是system的子节点。

还是用树形结构去理解的话,则system为树根,node是树枝中的一部分
flyerwing 2011-03-08
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 fangxinggood 的回复:]
Linq2xml:


C# code
var xdoc = XDocument.Load("路径");
var nodes = xdoc.Descendants("nodes");
foreach(var node in nodes)
Console.WriteLine(node);
[/Quote]
.xpath
机器人 2011-03-08
  • 打赏
  • 举报
回复
Linq2xml:

var xdoc = XDocument.Load("路径");
var nodes = xdoc.Descendants("nodes");
foreach(var node in nodes)
Console.WriteLine(node);
bdmh 2011-03-08
  • 打赏
  • 举报
回复
用xmlnode的SelectSingleNode去选择响应的节点,然后遍历他

110,538

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

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