2010-03-18 82 views
11

我需要處理現有的XML文檔,並從中創建一個新文檔,刪除一些節點和屬性,並可能添加新的文檔,那麼最好的一組類是完成這個?在.NET中處理XML的最佳方法

有很多用於XML操作的.NET類,我不確定最佳的方式是什麼。

+0

哪個.NET版本? – AakashM 2010-03-18 13:31:19

回答

10

如果它是一個非常龐大的XML,無法放入內存中,則應使用XmlReader/XmlWriter。如果不是LINQ to XML非常容易使用。如果你沒有.NET 3.5,你可以使用XmlDocument

這裏的刪除節點的例子:

using System.Xml.Linq; 
using System.Xml.XPath; 

var doc = XElement.Load("test.xml"); 
doc.XPathSelectElement("//customer").Remove(); 
doc.Save("test.xml"); 
+0

謝謝!這可以在內存中使用xml作爲字符串還是僅使用文件? – juan 2010-03-18 13:41:03

+0

無論它來自哪裏,它都應該能夠使用xml。您應該能夠調用XElement.Parse()並將xml作爲字符串傳遞。 – 2010-03-18 13:44:04

+0

如果你想處理xml命名空間,特別是默認命名空間,請點擊這裏:http://stackoverflow.com/questions/25396140/use-xpath-with-xml-namespace – smwikipedia 2014-08-20 07:24:35

1

如果你有一個正式的架構,您可以使用XmlSerializer。否則,最好使用XmlDocument,XmlNode,XmlElement等類。

否則,它也可能取決於你使用的爲XML,即標記了一些文件,表示對象等

+0

@Kurt:'XmlSerializer'不處理所有模式。 – 2010-03-18 13:38:50