我喜歡使用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. 從xml檢索節點值
- 2. 的LINQ to XML檢索單個節點
- 3. 如何使用Xpath檢索節點之後的XML樹節點?
- 4. 如何使用XQuery從SQL Server中檢索XML節點?
- 5. 如何更新使用LINQ XML節點
- 6. 如何使用LINQ更新XML節點?
- 7. 檢索使用LINQ和XML的節點數據的where子句
- 8. 檢索下一個XML節點 - 使用LINQ
- 9. 獲得使用LINQ從XML節點C#
- 10. XSL - 如何檢索XML節點的基礎上的XML節點
- 11. 使用TSQL檢索XML節點值?
- 12. 如何使用Linq to XML Query來搜索節點?
- 13. 如何檢索xml節點的值?
- 14. 檢索元素從XML使用LINQ
- 15. 從節點獲取屬性值,並檢查使用LINQ to XML
- 16. 使用linq從xml獲取特定節點使用linq
- 17. 選擇XML節點使用LINQ to XML
- 18. 無法從Javascript中使用getElementsByTagName從XML文檔檢索節點
- 19. 檢索XML節點名稱
- 20. 使用子節點進行XML解析
- 21. 如何從xml中爲特定節點檢索值並再次更新xml
- 22. 如何使用XSL檢索xml的根節點的id屬性?
- 23. 如何使用cElementTree檢索父節點?
- 24. 如何使用XQuery檢索父節點?
- 25. 如果節點具有屬性,如何從xml檢索值?
- 26. 從節點子進程中檢索值
- 27. 如何使用LINQ從XML文件檢索和過濾數據?
- 28. 如何複製節點XML和使用LINQ to XML
- 29. 使用Javascript從節點檢索所有XML
- 30. 使用JavaScript從XML節點檢索內部文本的問題