考虑以下情况:
<Items>
<Item>
<Code>Test</Code>
<Value>Test</Value>
</Item>
<Item>
<Code>MyCode</Code>
<Value>MyValue</Value>
</Item>
<Item>
<Code>AnotherItem</Code>
<Value>Another value</Value>
</Item>
</Items>
我想选择
XML
的Value
节点,其中Item
节点的值为Code
。如何使用MyCode
?我试过使用
XPath
但似乎不起作用。 最佳答案
XML数据错误。Value
标记没有正确匹配的结束标记,并且您的Item
标记没有匹配的结束标记(</Item>
)。
至于您的xpath,请尝试用引号将要匹配的数据括起来:
const string xmlString =
@"<Items>
<Item>
<Code>Test</Code>
<Value>Test</Value>
</Item>
<Item>
<Code>MyCode</Code>
<Value>MyValue</Value>
</Item>
<Item>
<Code>AnotherItem</Code>
<Value>Another value</Value>
</Item>
</Items>";
var doc = new XmlDocument();
doc.LoadXml(xmlString);
XmlElement element = (XmlElement)doc.SelectSingleNode("Items/Item[Code='MyCode']/Value");
Console.WriteLine(element.InnerText);