使用XmlNodeReader在XmlNode上读取外部Xml在ASP.NET Core 2.1中返回空字符串。
private string ReadXml(XmlNode element)
{
using (var reader = new XmlNodeReader(element))
{
return reader.ReadOuterXml();
}
}
是否可以使用ReadOuterXml方法?
答案 0 :(得分:3)
在这里的测试中,调用MoveToContent()
似乎可以使其工作:
static void Main()
{
XmlDocument doc = new XmlDocument();
doc.LoadXml(@"<foo><bar abc=""def"">ghi</bar></foo>");
var el = doc.SelectSingleNode("/foo/bar");
var s = ReadXml(el);
Console.WriteLine(s);
}
private static string ReadXml(XmlNode element)
{
using (var reader = new XmlNodeReader(element))
{
reader.MoveToContent();
return reader.ReadOuterXml();
}
}
基本上,读者在第一个节点之前 开始(reader.NodeType
是None
,然后移动到内容)。
使用起来也可能更简单:
return element.OuterXml;