空命名空间使用Linq Xml

我试图创建一个使用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"))));

结果是…

<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
  <url xmlns="">
    <loc>http://www.example.com/page</loc>
    <lastmod>2008-09-14</lastmod>
  </url>
</urlset>

我宁愿不在url元素上有xmlns =“”。我可以剥掉它使用Replace在最后的xdoc.ToString(),但是有更正确的方法吗?

“更正确的方式”是:
XDocument xdoc = new XDocument(new XDeclaration("1.0",new XElement(ns + "url",new XElement(ns + "loc",new XElement(ns + "lastmod","2008-09-14"))));

与您的代码相同,但在需要位于sitemap命名空间中的每个元素名称前加上“ns”。它足够聪明,不会在生成的XML中放置任何不必要的命名空间声明,因此结果是:

<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
  <url>
    <loc>http://www.example.com/page</loc>
    <lastmod>2008-09-14</lastmod>
  </url>
</urlset>

这是,如果我没有错,你想要什么。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


php输出xml格式字符串
J2ME Mobile 3D入门教程系列文章之一
XML轻松学习手册
XML入门的常见问题(一)
XML入门的常见问题(三)
XML轻松学习手册(2)XML概念
xml文件介绍及使用
xml编程(一)-xml语法
XML文件结构和基本语法
第2章 包装类
XML入门的常见问题(二)
Java对象的强、软、弱和虚引用
JS解析XML文件和XML字符串详解
java中枚举的详细使用介绍
了解Xml格式
XML入门的常见问题(四)
深入SQLite多线程的使用总结详解
PlayFramework完整实现一个APP(一)
XML和YAML的使用方法
XML轻松学习总节篇