包含正斜杠 (/) 的属性的 XPath 查询
我正在尝试使用 XPath 表达式对 XMLDocument
执行 SelectSingleNode
。但是,当我正在搜索的属性值包含多个正斜杠 (/) 时,它会返回 null。
我在网上找不到任何用于转义正斜杠的资源。有谁知道解决这个问题的方法吗?或者我在匹配属性值时语法全错了?
示例 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 环境中。
编辑:感谢您的回复。我通过在选择表达式中使用双正斜杠解决了这个问题。
XmlNode N = xmlDoc.SelectSingleNode("Root//Page[@Path='/brand/armada']");
I'm trying to do a SelectSingleNode
on an XMLDocument
using an XPath expression. However, when the attribute value that I'm searching contains multiple forward slashes (/), it returns null.
I can't find any resources online for escaping the forward slash. Does anyone know a way around this? Or have I got my syntax all wrong for matching the attribute value?
Example XML
<?xml version="1.0"?>
<Root>
<Page Path="/brand" />
<Page Path="/brand/armada" />
</Root>
This XPath expression returns the correct node (e.g.: the first one in the above sample)
XmlNode N = xmlDoc.SelectSingleNode("Root/Page[@Path='/brand']");
This XPath expression returns null
XmlNode N = xmlDoc.SelectSingleNode("Root/Page[@Path='/brand/armada']");
I'm in a C#, .net 3.5 environment.
EDIT: Thanks for the responses. I solved the issue by using a double forward slash in the select expression.
XmlNode N = xmlDoc.SelectSingleNode("Root//Page[@Path='/brand/armada']");
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
感谢您的回复。我通过在选择表达式中使用双正斜杠解决了这个问题。
Thanks for the responses. I solved the issue by using a double forward slash in the select expression.