将 XmlNode 转换为 XNode?

10

有人知道如何将 System.Xml.XmlNode 转换为 System.Xml.Linq.XNode 吗?

3个回答

12

Eric White的博客是XML/XLINQ转换等方面的不错资源。尽管这篇问题发表于博客文章之前,但我在查看其他问题时找到了它,所以也许人们仍会经常遇到这个问题。他的博客有很多优化过的LINQ,如原始响应的.Parse()调用可能是非最优的,实际上我知道它并不是最优的。

Parse需要一次性将XML加载进来,而Eric使用扩展方法使用XmlReader/Writer的方式处理XML转换。这些方法能够对输入进行流式处理,因此如果你的XML相当大,你就必须使用它们。


11

我从未尝试过,但我的第一个想法可能是:

XmlNode myNode;
XNode translatedNode = XDocument.Parse(myNode.OuterXml);

0

我认为没有必要,但你为什么需要呢?每个元素都是Xml结构的最低级“叶子”,用于不同的文档读取方式。

如果你使用Linq to Xml和XDocument,你将拥有所有的Linq风格语法和新功能,但实际上这只是关于选择节点。

一旦你获得了正在处理的元素,为什么还需要切换呢?


1
刚拿到一些旧代码,返回一个 XmlNode,但我想查询这个节点,它似乎实际上是一个文档。 - David

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接