首页 文章

ASP.NET Core 2.1 XmlNodeReader

提问于
浏览
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 回答

  • 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;
    

相关问题