有人知道如何将 System.Xml.XmlNode 转换为 System.Xml.Linq.XNode 吗?
有人知道如何将 System.Xml.XmlNode 转换为 System.Xml.Linq.XNode 吗?
Eric White的博客是XML/XLINQ转换等方面的不错资源。尽管这篇问题发表于博客文章之前,但我在查看其他问题时找到了它,所以也许人们仍会经常遇到这个问题。他的博客有很多优化过的LINQ,如原始响应的.Parse()调用可能是非最优的,实际上我知道它并不是最优的。
Parse需要一次性将XML加载进来,而Eric使用扩展方法使用XmlReader/Writer的方式处理XML转换。这些方法能够对输入进行流式处理,因此如果你的XML相当大,你就必须使用它们。
我从未尝试过,但我的第一个想法可能是:
XmlNode myNode;
XNode translatedNode = XDocument.Parse(myNode.OuterXml);
我认为没有必要,但你为什么需要呢?每个元素都是Xml结构的最低级“叶子”,用于不同的文档读取方式。
如果你使用Linq to Xml和XDocument,你将拥有所有的Linq风格语法和新功能,但实际上这只是关于选择节点。
一旦你获得了正在处理的元素,为什么还需要切换呢?