是否可以使用LINQ to XML解析部分xml文件?
我们以下面的文件为例:
<?xml version="1.0" encoding="utf-16" standalone="yes"?>
<FileWithData>
<Header>
<Type>File</Type>
<Content>Data</Content>
</Header>
<TonsOfData>
.......
</TonsOfData>
</FileWithData>
我想从几个这样的文件中读取Header
信息,但是加载XElement.Load(pathXmlFile)
并导航到Header
- 节点需要相当长的时间。是否有可能以某种方式解析我的xml结构中的子树以加快速度?
答案 0 :(得分:1)
仅加载到内存标题:
using (var xmlReader = XmlReader.Create(pathXmlFile))
{
if (xmlReader.ReadToFollowing("Header"))
{
XmlReader headerSubtree = xmlReader.ReadSubtree();
XElement headerElement = XElement.Load(headerSubtree);
// process headerElement
Console.WriteLine(headerElement.Element("Type").Value);
Console.WriteLine(headerElement.Element("Content").Value);
}
}
答案 1 :(得分:0)
XDocument和XElement将所有东西都读入内存,我认为你需要使用XMLReader,而不是Linq to XML。