使用 xPath 时是否可以忽略 C# 中的名称空间?
我可能会得到以下任一 xml:
<?xml version="1.0" encoding="UTF-8"?>
<dc:video xmlns:dc="http://purl.org/dc/elements/1.1/">
<dc:title>
A vid with Pete
</dc:title>
<dc:description>
Petes vid
</dc:description>
<dc:contributor>
Pete
</dc:contributor>
<dc:subject>
Cat 2
</dc:subject>
</dc:video>
或:
<?xml version="1.0" encoding="UTF-8"?>
<video>
<title>
A vid with Pete
<title>
<description>
Petes vid
<description>
<contributor>
Pete
<contributor>
<subject>
Cat 2
<subject>
</video>
我正在尝试访问一个元素:
string title = xmlDocFromOneLan.SelectSingleNode(@"/video/title").InnerXml;
但对于 xml 文档 1,由于名称空间,它不起作用。
C# 中有没有办法使用 xpath 忽略名称空间?我只想选择我真正不关心命名空间的节点。 (命名空间可以是 DC DN 或 DCN 等)。
“/video”
将显示为:
<video></video>
or
<dc:video></video>
or
<dcn:video></video>
I could be given either of the following xml:
<?xml version="1.0" encoding="UTF-8"?>
<dc:video xmlns:dc="http://purl.org/dc/elements/1.1/">
<dc:title>
A vid with Pete
</dc:title>
<dc:description>
Petes vid
</dc:description>
<dc:contributor>
Pete
</dc:contributor>
<dc:subject>
Cat 2
</dc:subject>
</dc:video>
Or:
<?xml version="1.0" encoding="UTF-8"?>
<video>
<title>
A vid with Pete
<title>
<description>
Petes vid
<description>
<contributor>
Pete
<contributor>
<subject>
Cat 2
<subject>
</video>
Im trying to access an element:
string title = xmlDocFromOneLan.SelectSingleNode(@"/video/title").InnerXml;
But with xml document 1 it doesnt work due to the namespace.
Is there a way in c# to ignore the namespace using xpath? I simply want to select the node I really dont care about the namespace. (the namespace could be DC DN or DCN etc).
"/video"
would read:
<video></video>
or
<dc:video></video>
or
<dcn:video></video>
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
使用 XPath 1.0,您所能做的就是
/*[local-name() = 'video']/*[local-name() = 'title']
。使用 XPath 2.0,您可以使用通配符/*:video/*:title
。With XPath 1.0 all you can do is
/*[local-name() = 'video']/*[local-name() = 'title']
. With XPath 2.0 you can use a wildcard/*:video/*:title
.