看看这个XML取值问题怎么处理?(在线等)

来源:百度知道 编辑:UC知道 时间:2024/05/26 11:25:09
给定以下XML文件。
<SYSTEM ID="00" NAME="" URL="" IMG="">
<MENU ID="0001" NAME="aa1" URL="" IMG="">
<SUBMENU ID="000101" NAME="a1" URL="a.aspx" IMG=""/>
<SUBMENU ID="000102" NAME="b1" URL="b.aspx" IMG=""/>
</MENU>
<MENU ID="0002" NAME="bb1" URL="" IMG="">
<SUBMENU ID="000201" NAME="a2" URL="c.aspx" IMG=""/>
<SUBMENU ID="000202" NAME="b2" URL="d.aspx" IMG=""/>
<SUBMENU ID="000203" NAME="c2" URL="e.aspx" IMG=""/>
</MENU>
</SYSTEM>

1)取得ID为000202节点中URl值?
2)遍历SYSTEM以下所有节点?

用C#语言

首先需要调用XML处理的命名空间
using System.Xml;
然后建立对XML进行处理的类的对象
XmlDocument xmlDoc =new XmlDocument();
与xml文件绑定
xmlDoc.Load("xml文件路径");

1)取得ID为000202节点中的URI值
这句的目的是建立一个XPATH表达式,作用是查找所有名字是SUBMENU,属性ID=000202的节点
string xpath = "\\SUBMENU[@ID=000202]";
获得xml文件的根节点
XmlNode baseNode = xmlDoc.DocumentElement;
以根节点下的所有节点为查询返回,获得一个符合XPATH表达式的子节点
XmlNode selectedNode = xmlDoc.D.SelectSingleNode(xpath);
获得节点中的第三个属性值(第一个属性值是0)
string strUri = selectedNode.Attributes[2].InnerText;

2)遍历SYSTEM以下所有节点?
不知道是不是要获得SYSTEM以下的所有节点,如果是这样的话,,还是使用XPATH
这个XPATH的作用是选择所有子节点
string xpath = "//*";
获得xml文件的根节点
XmlNode sytemNode = xmlDoc.DocumentElement.SelectSingleNode("\\SYSTEM");
获得SYSTEM节点下的所有子节点
XmlNodeList lstSelectNodes = systemNode.SelectNodes(xpath);

1)取得ID为000202节点中URl值?
XmlDocument _doc = null;
_doc = new XmlDocume