当使用xPath时,是否可以忽略c#中的命名空间?
问题描述:
我可以给予下列任一XML的:当使用xPath时,是否可以忽略c#中的命名空间?
<?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>
or
<dc:video></video>
or
<dcn:video></video>
答
在XPath 1.0所有你能做的就是/*[local-name() = 'video']/*[local-name() = 'title']
。使用XPath 2.0,您可以使用通配符/*:video/*:title
。
谢谢马丁,你知道我可以在哪里得到相关文件吗? – Exitos 2010-11-30 12:27:11