5
我正在尝试使用XPath表达式在XMLDocument
上执行SelectSingleNode
。但是,当我正在搜索的属性值包含多个正斜杠(/)时,它将返回空值。XPath查询包含正斜杠的属性(/)
我无法在线找到任何资源来转义正斜杠。有没有人知道解决这个问题的方法?或者我有我的语法都匹配属性值错了吗?
示例XML
<?xml version="1.0"?>
<Root>
<Page Path="/brand" />
<Page Path="/brand/armada" />
</Root>
此XPath表达式返回正确的节点(例如:上述样品中的第一个)
XmlNode N = xmlDoc.SelectSingleNode("Root/Page[@Path='/brand']");
此XPath表达式返回null
XmlNode N = xmlDoc.SelectSingleNode("Root/Page[@Path='/brand/armada']");
我在C#,.net 3.5环境中。
编辑:感谢您的答复。我通过在select表达式中使用双向正斜杠来解决问题。
XmlNode N = xmlDoc.SelectSingleNode("Root//Page[@Path='/brand/armada']");
我最小的repro控制台应用程序给出了xpaths的预期结果 – AakashM 2011-05-05 09:48:27
必须是一个错误。或者问题在其他地方。 XMLspy 2011 SP1使用Xpath表达式更正它。 – ceving 2011-05-05 14:18:44
@chris如果您自己找到了答案,您可以在下面发布答案,并将其标记为接受的答案,以便其他人可以从中受益。这也意味着这个问题不再出现在SO的“未答复”部分。谢谢 – BMac 2015-05-11 07:49:32