我有一个XML文件,下面显示了它的一部分。
<node id="413" text="plant1">
<node id="419" text="Detail Reports">
<node id="424" text="Bulk Lactol" reportid="14" nodetype="1"/>
<node id="427" text="Effluent" reportid="17" nodetype="1"/>
<node id="425" text="Pasteurisers" reportid="15" nodetype="1"/>
<node id="421" text="Tank 8" reportid="12" nodetype="1"/>
<node id="420" text="Tank 9" reportid="11" nodetype="1"/>
</node>
<node id="422" text="Summary Reports">
<node id="423" text="plant1 Summary" reportid="13" nodetype="1"/>
<node id="426" text="Effluent Summary" reportid="16" nodetype="1"/>
</node>
</node>
我试图通过'text'值获取'node id'。 我尝试了以下内容。
string y = "Bulk Lactol"
XmlDocument doc = new XmlDocument();
doc.Load("C:\\Users\\Joe\\Desktop\\wt.xml");
XmlNode node = doc.DocumentElement.SelectSingleNode(y);
string x = Convert.ToString(node);
但我得到一个例外:
'Bulk Lactol'有一个无效的令牌。
我发现了一些类似的问题,但我对XML不太熟悉,所以我无法适应我的问题,感谢您的帮助。
答案 0 :(得分:3)
SelectSingleNode
和SelectNodes
接受XPath字符串作为参数。
您可以使用以下XPath来查找此项目:
string y = "Bulk Lactol";
XmlDocument doc = new XmlDocument();
doc.Load("C:\\Users\\Joe\\Desktop\\wt.xml");
XmlNode node = doc.SelectSingleNode(@"//node[@text='Bulk Lactol']");
string x = node.InnerText;
//node[@text='Bulk Lactol']
XPath意味着
层次结构中具有值为“Bulk Lactol”
的属性“text”的任何元素