仅解析xml的一部分

isp*_*iro 5 .net c# xml

考虑以下xml:

<?xml version="1.0" encoding="utf-8" ?>
<Outer>
  <Inner1>ABC</Inner1>
  <Inner2>DEF</Inner2>
</Outer>
Run Code Online (Sandbox Code Playgroud)

我希望能够在Inner1不解析整个文档的情况下获得值("ABC").这是因为实际上文档可能很长.有没有办法使用.net(XDocument.而不是手动解析它)?

Pad*_*ddy 7

您可以使用XmlReader它,它不会解析整个文档,但只提供前向文档访问(类似于SAX解析器):

http://msdn.microsoft.com/en-us/library/system.xml.xmlreader(v=vs.110).aspx


我认为如下:

using (XmlReader reader = XmlReader.Create("sample.xml")) {

  // Move the reader to the inner1 node
  reader.MoveToContent(); 
  reader.ReadToDescendant("Inner1");

  return reader.ReadElementContentAsString();
}
Run Code Online (Sandbox Code Playgroud)