XmlReader只读取第一个节点

时间:2015-10-23 07:51:36

标签: c# .net xml

我有这个XML文件:

<StaticHeader>
  <Byte Range="0">
    <Val></Val>
    <Descr>Foobar</Descr>
  </Byte>
  <Byte Range="1">
    <Val></Val>
    <Descr>Bar</Descr>
  </Byte>
  <Byte Range="2">
    <Val></Val>
    <Descr>Foo></Descr>
  </Byte>
</StaticHeader>

我的代码是:

var reader = XmlReader.Create(pathToFile, readerSettings);
reader.MoveToContent();
reader.ReadStartElement();
writer.WriteNode(reader, false);

测试输出总是:

<Byte Range="0">
  <Val></Val>
  <Descr>Foobar</Descr>
</Byte>

但我需要<StaticHeader> and </StaticHeader>

之间的所有内容

2 个答案:

答案 0 :(得分:1)

最简单的方法:

var doc = XElement.Load(pathToFile);
var ranges = doc.Elements("Byte");

答案 1 :(得分:0)

尝试使用while(reader.Read())

var reader = XmlReader.Create("[path to your xml file]");
while (reader.Read())
{
    Console.WriteLine(reader.ReadInnerXml().ToString());
}