gpt4 book ai didi

c# - 我的 XPath 有什么问题?

转载 作者:太空宇宙 更新时间:2023-11-03 11:50:59 26 4
gpt4 key购买 nike

我这里有 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 错误?

最佳答案

/root/field[text()='car']/@type

将带回一个节点,表示文本值为“car”的元素“field”的属性“type”。此 XmlNode 的值将为“ferrari”。

/root/field[text()='car']

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

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

关于c# - 我的 XPath 有什么问题?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2148650/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com