我喜欢使用linq从xml文件中检索数据。我验证了很多示例,所有示例都以XElement的形式显示检索到的元素,但是以XMLNode的形式检索。是否有可能做这样的事我该如何将XElement转换为xmlnode,我如何做到这一点。我需要它在XMLBound元素不在XMLDocment中。如何使用linq从xmldocment作为xml节点进行检索
0
A
回答
1
你可以为linq写一个扩展名。
public static XmlNode GetXmlNode(this XElement element)
{
using (XmlReader xmlReader = element.CreateReader())
{
XmlDocument xmlDoc = new XmlDocument();
xmlDoc.Load(xmlReader);
return xmlDoc;
}
}
既然你有你的XElement,你可以把它转换。(blog post)
element.GetXmlNode();
希望这有助于
迈拉
0
下面的方法将任何XNode
转换为XmlNode
XmlDocument doc = new XmlDocument(); //cached as a member variable for performance.
//recreating it inside ToXmlNode works fine too.
XmlNode ToXmlNode(XNode xnode) {
using(var reader = myElem.CreateReader())
return doc.ReadNode(reader);
}
这意味着它将支持整个文档,单个元素,文本节点,注释,处理指令 - 除XAttribute
之外的大部分内容。
但是,这是你应该避免的。尝试坚持使用新的System.Xml.Linq
API,而不是将其与基于XmlDocument
的API混合使用。这个新的API更容易处理,并且在任何情况下,混合这样的API都会导致难以维护的代码。如果您必须混合使用API,那么将整个文档转换为一个文档可能更清晰,而不是复制单个节点,尤其是在数据结构可变的情况下。
但是,如果你只是需要一些快速的互操作性,上述将工作得很好,合理高效。
相关问题
- 1. 的LINQ to XML检索单个节点
- 2. 如何使用XQuery从SQL Server中检索XML节点?
- 3. 如何更新使用LINQ XML节点
- 4. 检索下一个XML节点 - 使用LINQ
- 5. 检索使用LINQ和XML的节点数据的where子句
- 6. XSL - 如何检索XML节点的基础上的XML节点
- 7. 如何使用Linq to XML Query来搜索节点?
- 8. 检索元素从XML使用LINQ
- 9. 选择XML节点使用LINQ to XML
- 10. 使用子节点进行XML解析
- 11. 如何从xml中为特定节点检索值并再次更新xml
- 12. 如何使用XSL检索xml的根节点的id属性?
- 13. 如何使用XQuery检索父节点?
- 14. 如何使用cElementTree检索父节点?
- 15. 如何使用LINQ从XML文件检索和过滤数据?
- 16. 使用JavaScript从XML节点检索内部文本的问题
- 17. 如何复制节点XML和使用LINQ to XML
- 18. PHP检索XML节点值用SimpleXML
- 19. 如何从Oracle表中检索特定的XML节点?
- 20. C++如何从XML节点检索文本值
- 21. 如何从Flex中/的Actionscript XML检索节点名称
- 22. 如何同时检索子节点和父节点XML节点的值?
- 23. 如何使用simplexmlelement或其他XML函数从数组中检索节点?
- 24. 如何使用xml节点
- 25. 检索Xml节点子元素作为词典
- 26. LINQ to XML,按照正确的顺序检索rigt节点
- 27. 如何使用XML负载以节点红色进行POST
- 28. 如何使用XSLT对XML节点进行排序
- 29. 从父节点检索子节点
- 30. 使用Linq的XML更新节点