我可以获得以下任一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>
or
<dc:video></video>
or
<dcn:video></video>
答案 0 :(得分:41)
使用XPath 1.0,您所能做的就是/*[local-name() = 'video']/*[local-name() = 'title']
。使用XPath 2.0,您可以使用通配符/*:video/*:title
。