C# 不使用名称空间读取内部XML
我试图将根元素的内部XML作为字符串读取,但XmlReader类是名称空间感知的。有没有办法忽略名称空间?我可以使用BCL中的任何类,只要它通过下面的NUNit测试C# 不使用名称空间读取内部XML,c#,.net,xml,xmlreader,C#,.net,Xml,Xmlreader,我试图将根元素的内部XML作为字符串读取,但XmlReader类是名称空间感知的。有没有办法忽略名称空间?我可以使用BCL中的任何类,只要它通过下面的NUNit测试 [Test] public void GetInnerXmlTest() { string subject = "<?xml version=\"1.0\" encoding=\"utf-8\"?>" + "<urlset xmlns=\"http://www.si
[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);
}
[测试]
public void GetInnerXmlTest()
{
string subject=“”+
"" +
“abc”+
“def”+
"";
XDocument document=XDocument.Parse(主题);
XmlReader=document.FirstNode.CreateReader();
xmlReader.MoveToContent();
字符串innerXml=xmlReader.ReadInnerXml();
//abcdef
Assert.AreEqual(“abcdef”,
innerXml);
}
必须先删除名称空间。
您不能在使用innerXML后直接将其取出。好吧,那么,您从
ReadInnerXml
中得到了什么结果?为什么您认为这是错误的?@OndrejTucny我用ReadInnerXml方法返回的值更新了这个问题。您可以在断言中看到我想要得到的输出。这些问题可能有帮助: