考虑以下xml:

<?xml version="1.0" encoding="utf-8" ?>
<Outer>
  <Inner1>ABC</Inner1>
  <Inner2>DEF</Inner2>
</Outer>

我希望能够在不解析整个文档的情况下获取Inner1的值(“ABC”)。这是因为实际上文档可能会很长。有没有一种方法可以使用.net(XDocument。与手动解析相反)?

最佳答案

您可以使用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();
}

关于c# - 仅解析xml的一部分,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/20747243/

10-11 23:59
查看更多