在c#中解析xml:将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://*.com/questions/6957483/linq-to-xml-yield-and-others) – casperOne