当前位置:  开发笔记 > Android > 正文

使用Linq Xml的空命名空间

如何解决《使用LinqXml的空命名空间》经验,为你挑选了1个好方法。

我正在尝试使用Linq到Xml创建一个站点地图,但我得到一个空的命名空间属性,我想摆脱它.例如

XNamespace ns = "http://www.sitemaps.org/schemas/sitemap/0.9";

XDocument xdoc = new XDocument(new XDeclaration("1.0", "utf-8", "true"),
    new XElement(ns + "urlset",

    new XElement("url",
        new XElement("loc", "http://www.example.com/page"),
        new XElement("lastmod", "2008-09-14"))));

结果是......


  
    http://www.example.com/page
    2008-09-14
  

我宁愿在url元素上没有xmlns ="".我可以在最终的xdoc.ToString()上使用Replace来删除它,但是有更正确的方法吗?



1> Micah..:

"更正确的方式"是:

XDocument xdoc = new XDocument(new XDeclaration("1.0", "utf-8", "true"),
new XElement(ns + "urlset",
new XElement(ns + "url",
    new XElement(ns + "loc", "http://www.example.com/page"),
    new XElement(ns + "lastmod", "2008-09-14"))));

与您的代码相同,但在每个要在sitemap命名空间中的元素名称之前使用"ns +".它足够聪明,不会在生成的XML中放置任何不必要的命名空间声明,因此结果如下:


  
    http://www.example.com/page
    2008-09-14
  

也就是说,如果我没弄错的话,你想要什么.

推荐阅读
Gbom2402851125
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有