例如在“qualities”中 - 得到值“4”,取名为“rarity3”然后在“qualityNames”中我得到名为“rarity3”的节点并取值“amazingrarity”
<result>
<status>1</status>
<qualities>
<Normal>0</Normal>
<rarity1>1</rarity1>
<rarity2>2</rarity2>
<vintage>3</vintage>
<rarity3>4</rarity3>
<rarity4>5</rarity4>
</qualities>
<qualityNames>
<Normal>Normal</Normal>
<rarity1>Genuine</rarity1>
<rarity2>rarity2</rarity2>
<vintage>Vintage</vintage>
<rarity3>amazingrarity</rarity3>
<rarity4>Unusual</rarity4>
</qualityNames>
</result>
我在 C# 中执行此操作(它是一个 MVC 应用程序)并且我更喜欢使用 XPath,因为我正在为 XML 编制索引并且我还没有找到查询内存技术的最快方法(此 XML 文件有 ~3MB,我正在使用 IndexingXPathNavigator)。
最佳答案
使用 local-name() 和 text() 函数 + 谓词。对于值“4”,它将是
//qualityNames/*[local-name()=local-name(//qualities/*[text() = '4'])]
关于c# - 如何编写 XPath 表达式以从其值中选择节点名称,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16780247/