ASP.NET Core 2.1 XmlNodeReader

时间:2018-11-23 16:13:34

标签: c# asp.net-core-2.1

使用XmlNodeReader在XmlNode上读取外部Xml在ASP.NET Core 2.1中返回空字符串。

private string ReadXml(XmlNode element)
{
    using (var reader = new XmlNodeReader(element))
    {
        return reader.ReadOuterXml();
    }
}

是否可以使用ReadOuterXml方法?

1 个答案:

答案 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.NodeTypeNone,然后移动到内容)。


使用起来也可能更简单:

return element.OuterXml;