如何:从 XmlReader 创建树

本主题演示如何直接从 XmlReader 创建 XML 树。 若要从 XmlReader 创建 XElement,必须将 XmlReader 定位在元素节点上。 XmlReader 将跳过注释和处理指令,但如果 XmlReader 定位在文本节点上,则将引发错误。 若要避免这类错误,请在从 XmlReader 创建 XML 树之前,始终将 XmlReader 定位在元素上。

示例

本示例使用下面的 XML 文档:示例 XML 文件:图书 (LINQ to XML)

下面的代码创建一个 T:System.Xml.XmlReader 对象,然后读取节点,直到找到第一个元素节点。 然后加载 XElement 对象。

XmlReader r = XmlReader.Create("books.xml");
while (r.NodeType != XmlNodeType.Element)
    r.Read();
XElement e = XElement.Load(r);
Console.WriteLine(e);
Dim r As XmlReader = XmlReader.Create("books.xml")
Do While r.NodeType <> XmlNodeType.Element
    r.Read()
Loop
Dim e As XElement = XElement.Load(r)
Console.WriteLine(e)

此示例产生以下输出:

<Catalog>
   <Book id="bk101">
      <Author>Garghentini, Davide</Author>
      <Title>XML Developer's Guide</Title>
      <Genre>Computer</Genre>
      <Price>44.95</Price>
      <PublishDate>2000-10-01</PublishDate>
      <Description>An in-depth look at creating applications 
      with XML.</Description>
   </Book>
   <Book id="bk102">
      <Author>Garcia, Debra</Author>
      <Title>Midnight Rain</Title>
      <Genre>Fantasy</Genre>
      <Price>5.95</Price>
      <PublishDate>2000-12-16</PublishDate>
      <Description>A former architect battles corporate zombies, 
      an evil sorceress, and her own childhood to become queen 
      of the world.</Description>
   </Book>
</Catalog>

请参见

概念

分析 XML