当使用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

+0

谢谢马丁,你知道我可以在哪里得到相关文件吗? – Exitos 2010-11-30 12:27:11