XPath默认名称空间 [英] XPath default namespace

查看:76
本文介绍了XPath默认名称空间的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我对XML文件中的默认名称空间有疑问.

I have a problem with default namespaces in XML file.

<urlset xmlns="http://www.google.com/schemas/sitemap/0.84">
   <url>
      <loc>http://blog.stevex.net/</loc>
   </url>
</urlset>


我正在使用XPathNavigator通过Xpath选择一组节点,如下所示:


I''m using a XPathNavigator to select a set of nodes using Xpath as follows:

XPathNodeIterator result = navigator.Select("/urlset/url/loc");


我没有得到任何结果.
如何在不向XPath表达式添加前缀的情况下解决此问题?

谢谢.


I am not getting any results back.
How can i solve this problem without adding prefixes to XPath expression?

Thank you.

推荐答案

谢谢cmanderson.

我刚刚从XML中删除了默认名称空间.也许我的代码可以帮助某人.

Thank you cmanderson.

I just removed the default namespaces from XML. Maybe my code will help someone.

string RemoveAllDefaulNamespaces(Stream input)
{
    string regexp = "xmlns=\".+?\"";
    string text;
    using (StreamReader reader = new StreamReader(input))
    {
        text = reader.ReadToEnd();
    }
    Regex expression = new Regex(regexp, RegexOptions.IgnoreCase|RegexOptions.Multiline);

    return expression.Replace(text, string.Empty);
}


这篇关于XPath默认名称空间的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆