c# – 如何搜索和导航XML节点
发布时间:2020-12-15 08:07:24 所属栏目:百科 来源:网络整理
导读:我有以下 XML: LOCALCELL_V18 ID = "0x2d100000" MXPWR ID = "0x3d1003a0"100/MXPWR /LOCALCELL_V18LOCALCELL_V18 ID = "0x2d140000" MXPWR ID = "0x3d1403a0"200/MXPWR /LOCALCELL_V18LOCALCELL_V18 ID = "0x2d180000" MXPWR ID = "0x3d1803a0"300/MXPWR /
我有以下
XML:
<LOCALCELL_V18 ID = "0x2d100000"> <MXPWR ID = "0x3d1003a0">100</MXPWR> </LOCALCELL_V18> <LOCALCELL_V18 ID = "0x2d140000"> <MXPWR ID = "0x3d1403a0">200</MXPWR> </LOCALCELL_V18> <LOCALCELL_V18 ID = "0x2d180000"> <MXPWR ID = "0x3d1803a0">300</MXPWR> </LOCALCELL_V18> 我想获得每个< MXPWR>的内部文本.但是,不允许使用ID#来定位内部文本,因为它并不总是相同的.这是我的代码: XmlNodeList LocalCell = xmlDocument.GetElementsByTagName("LOCALCELL_V18"); foreach (XmlNode LocalCell_Children in LocalCell) { XmlElement MXPWR = (XmlElement)LocalCell_Children; XmlNodeList MXPWR_List = MXPWR.GetElementsByTagName("MXPWR"); for (int i = 0; i < MXPWR_List.Count; i++) { MaxPwr_form_str = MXPWR_List[i].InnerText; } } 任何意见将不胜感激. 解决方法
我会使用
xpath.它是专为这类问题而设计的.就像是:
using System.Xml; using System.Xml.XPath; .... string fileName = "data.xml"; // your file here XPathDocument doc = new XPathDocument(fileName); XPathNavigator nav = doc.CreateNavigator(); // Compile an xpath expression XPathExpression expr = nav.Compile("./LOCALCELL_V18/MXPWR"); XPathNodeIterator iterator = nav.Select(expr); // Iterate on the node set while (iterator.MoveNext()) { string s = iterator.Current.Value; } 当我在你的XML文件上运行它(包装在根节点中)时,我得到: s = 100 s = 200 s = 300 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |