考虑以下情况:

<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>

我想选择XMLValue节点,其中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);

08-25 11:02
查看更多