我必須在C#中解析大型XML文件。我使用LINQ到XML。我有一個像在c#中解析xml:將xmlreader和linq結合到xml
<root>
<node></node>
<node></node>
</root>
的結構,我想每個節點上使用XmlReader
循環和使用LINQ到XML得到每個節點和它的工作?
所以我只有在內存中的當前節點。
我必須在C#中解析大型XML文件。我使用LINQ到XML。我有一個像在c#中解析xml:將xmlreader和linq結合到xml
<root>
<node></node>
<node></node>
</root>
的結構,我想每個節點上使用XmlReader
循環和使用LINQ到XML得到每個節點和它的工作?
所以我只有在內存中的當前節點。
你可以做這樣的事情:
string path = @"E:\tmp\testxml.xml";
using (var reader = XmlReader.Create(path))
{
bool isOnNode = reader.ReadToDescendant("node");
while (isOnNode)
{
var element = (XElement)XNode.ReadFrom(reader);
// Use element with Linq to XML
// ...
isOnNode = reader.ReadToNextSibling("node");
}
}
什麼是您的實際問題嗎? – msarchet
@msarchet,我認爲這個問題很清楚......他希望在每個''元素上使用Linq到XML,但是使用'XmlReader'來獲取這些元素,以避免將整個文檔加載到內存中 –
可能的重複[Linq到XML,良品率等](http://stackoverflow.com/questions/6957483/linq-to-xml-yield-and-others) – casperOne