【问题标题】:Reading inner XML without namespaces读取没有命名空间的内部 XML
【发布时间】:2014-01-01 00:17:06
【问题描述】:

我正在尝试将根元素的内部 XML 读取为字符串,但 XmlReader 类可识别命名空间。有没有办法忽略命名空间?只要通过下面的 NUUnit 测试,我就可以使用 BCL 中的任何类。

[Test]
public void GetInnerXmlTest()
{
    string subject = "<?xml version=\"1.0\" encoding=\"utf-8\"?>" +
                     "<urlset xmlns=\"http://www.sitemaps.org/schemas/sitemap/0.9\">" +
                         "<url><loc>abc</loc></url>" +
                         "<url><loc>def</loc></url>" +
                     "</urlset>";

    XDocument document = XDocument.Parse(subject);
    XmlReader xmlReader = document.FirstNode.CreateReader();
    xmlReader.MoveToContent();
    string innerXml = xmlReader.ReadInnerXml();
    //<url xmlns="http://www.sitemaps.org/schemas/sitemap/0.9"><loc>abc</loc></url><url xmlns="http://www.sitemaps.org/schemas/sitemap/0.9"><loc>def</loc></url>

    Assert.AreEqual("<url><loc>abc</loc></url><url><loc>def</loc></url>",
                    innerXml);
}

【问题讨论】:

标签: c# .net xml xmlreader


【解决方案1】:

您必须先删除命名空间。 How to remove all namespaces from XML with C#?

用过innerXML后不能直接取出来。

【讨论】:

    猜你喜欢
    • 2012-12-31
    • 1970-01-01
    • 1970-01-01
    • 2013-02-18
    • 1970-01-01
    • 2015-07-28
    • 1970-01-01
    • 2018-12-07
    • 2021-10-02
    相关资源
    最近更新 更多