【问题标题】:ASP.NET Core 2.1 XmlNodeReaderASP.NET Core 2.1 XmlNodeReader
【发布时间】:2018-11-23 16:13:34
【问题描述】:

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

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

是否可以使用 ReadOuterXml 方法?

【问题讨论】:

  • 你有一个 complete 示例来说明这一点吗?例如:这里的XmlNode 是什么? element 的名称表明它是一个元素 (XmlElement) - 但是:我们不知道。
  • 你说得对,在我的情况下实际上是一个 XmlElement。

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


【解决方案1】:

在这里的测试中,调用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;

【讨论】:

  • 谢谢,我会测试的。
猜你喜欢
  • 2018-12-10
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-10-26
  • 2019-06-17
  • 2019-08-29
  • 2019-02-15
相关资源
最近更新 更多