我是C#的新手。我有一個相對較大的XML文件(28MB),並試圖根據它們的內容將它的子樹解析成幾種不同的類型。從本質上講,我有6900+個內容節點,所有內容節點都必須經過詢問才能確定它們是什麼類型。在C#中將大型XML讀入不同節點類型的高效方法
<Collections>
<Content>..</Content>
<Content>..</Content>
<Content>..</Content>
...
</Collections>
對於每個內容節點,它下面的各種節點可以有3種不同的模式中的一種。我必須查看節點來決定我正在查看的對象的哪種模式/類型。所以想象一個內容節點中有大約100個子節點,第14個節點(在一種情況下)中有一個URL,並表示它是一個「類型1」,應該有字段1,2, 3,... 17,28,47和58寫入DB。
另一種類型具有指示性元素對(假設元素3和58),並指示它是一個「類型2」並且應該有一組不同的元素寫入數據庫。
等等......
從那裏,我映射對象爲CMS/DB和各種數據的在其他系統連接到田野,跨過到DB寫入從相關元素的數據。
由於源文件很大,我希望能夠有效地將子樹從較大的文件中拉出來,拉上拉下拉(取決於它們的類型),然後將重要數據(映射到數據庫) 。
我是否必須以某種方式存儲值,並在存儲它們之後做出決定,這是什麼類型的對象?
我正在努力使用XmlReader的僅前向方法和使用基於DOM的方法的簡便性。
感謝您的意見。
===編輯==== 謝謝你的評論者。內容節點內部的結構將有三種模式中的一種。每種類型都有大約100個節點,所以爲了便於閱讀,我沒有費心去粘貼它們。儘管如此,我的確嘗試並澄清。
喜歡的東西[如何讀取大的XML文件,而不在內存中加載並使用的XElement(http://stackoverflow.com/questions/2249875/how-to-read-large-xml-文件沒有加載,它-內存和-使用-的XElement)? – dbc
您的示例xml不顯示不同的內容類型。 –