C# 我的XPath有什么问题?

C# 我的XPath有什么问题?,c#,xml,xpath,xmldocument,C#,Xml,Xpath,Xmldocument,这里是xml: <root> <field ...>offer</field> <field type="ferrari" ...>car</field> <field ...>company</field> <field ...>whatever</field> </root> 已经足够了,但当我试图执行我的C#代码时: 对象«节点»始终包含

这里是xml:

<root>
    <field ...>offer</field>
    <field type="ferrari" ...>car</field>
    <field ...>company</field>
    <field ...>whatever</field>
</root>
已经足够了,但当我试图执行我的C#代码时:

对象«节点»始终包含第一个子元素«字段»(offer),对于SelectNodes(“…相同的xpath…”)返回所有元素«字段»,忽略条件

有什么问题吗?XPath错误了吗

/root/field[text()='car']/@type
将带回一个节点,该节点表示文本值为“car”的元素“field”的属性“type”。此XmlNode的值将为“ferrari”

将带回一个表示元素“field”(其文本值为“car”)的节点,您可以通过编程方式从type属性获取该节点:

XmlNode fieldNode = document.DocumentElement.SelectSingleNode(@"/root/field[text()='car']");
string type = fieldNode.Attributes["type"].Value;
//type == "ferrari"

谢谢你,伙计!:)我不知道我必须指定内部内容必须转换为文本!比尔!您的xml看起来很落后。type=“car”和元素的值不应该是ferrari吗?我必须对这种XML做一个解析器,我不能改变它的结构,因为它是客户的定义。但我同意你的看法,像这样的结构有点畸形。。。
/root/field[text()='car']/@type
/root/field[text()='car']
XmlNode fieldNode = document.DocumentElement.SelectSingleNode(@"/root/field[text()='car']");
string type = fieldNode.Attributes["type"].Value;
//type == "ferrari"