ここにxmlがあります:
<root>
<field ...>offer</field>
<field type="ferrari" ...>car</field>
<field ...>company</field>
<field ...>whatever</field>
</root>
要素を抽出して «car» の «type» を知りたい。私は次のようなことを考えました:
/root[field='car']/field (or /root[field='car'])
で十分でしたが、C# コードを実行しようとすると、次のようになりました。
XmlDocument document = new XmlDocument();
document.InnerXml = "..."; // xml of above
XmlNode node = document.DocumentElement.SelectSingleNode("... xpath of above ...");
オブジェクト «node» には常に最初の子要素 «field» (オファー) が含まれ、SelectNodes("... same xpath ...") の場合、条件を無視してすべての要素 «field» を返します。
どうしたの?XPath が間違っていますか?