【发布时间】: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);
}
【问题讨论】:
-
好吧,你从
ReadInnerXml得到什么结果,为什么你认为它是错误的? -
@OndrejTucny 我用 ReadInnerXml 方法返回的值更新了问题。你可以在断言中看到我想要得到的输出。