2012-06-13 66 views
1

我是XML解析中的新成員。我有一個Xml文件,我需要從這個XML中提取一些元素,並用這些選定的元素和一些額外的元素創建一個新的XML文件。如何將一個xml更改爲另一個

什麼我需要了解之前啓動該怎麼辦呢?

+0

考慮使用XSLT,它出於這樣的目的已創建。 –

回答

3

的LINQ to XML使這很容易。例如,這都將來自existing.xmlfoo元素複製到new.xml一個imported元素,同時創建一個other元素:

XDocument oldDoc = XDocument.Load("existing.xml"); 
var elementsToCopy = oldDoc.Descendants("foo"); 

var newDoc = new XDocument(
    new XElement("root", 
     new XElement("imported", elementsToCopy), 
     new XElement("other") 
    ) 
); 
newDoc.Save("new.xml"); 

雖然XSLT(別處建議)將很可能工作得很好,我我總是發現它使用起來有些複雜 - 我寧願不必爲了在C#中輕鬆實現的東西而學習另一種語言。因人而異。

+0

XDocument(如XmlDocument)推測將整個文檔加載到內存中。所以這個建議可能不適用於非常大的XML文件。 – Joe

+0

@Joe:雖然這是真實的,內存上最先進的機器的尺寸意味着你可以加載一些非常巨大的XML文件,而不用擔心 - 的程度,除非有人*說* XML文件是巨大的,很可能不是一個問題。 –

+0

真實的,尤其是在64位應用程序,但我認爲這種差異betweek的XmlDocument /的XDocument和XmlReader中是後話了OP需要知道的,因爲他問:「......我需要什麼之前,瞭解啓動這個」 – Joe

5

什麼我需要了解之前啓動該怎麼辦呢?

您可以查看XDocument類,它允許您操作XML文件。另一種可能性是閱讀有關XSL transformations

相關問題