Come creare un albero da un oggetto XmlReader (LINQ to XML)

Questo articolo illustra come creare un albero XML direttamente da un oggetto XmlReader in C# o Visual Basic. Per creare un oggetto XElement da XmlReader, è necessario posizionare l'oggetto XmlReader in un nodo di elemento. XmlReader ignorerà i commenti e le istruzioni di elaborazione, ma se XmlReader è posizionato in un nodo di testo, verrà generato un errore. Per evitare tali errori, posizionare l'oggetto XmlReader in un elemento prima di creare l'albero XML da XmlReader.

Esempio: Caricare l'oggetto XElement da un oggetto XmlReader

In questo esempio viene usato il documento XML File XML di esempio: Books.

Nel codice seguente viene creato un oggetto XmlReader, quindi vengono letti i nodi finché non viene trovato il primo nodo di elemento e viene caricato l'oggetto 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)

Nell'esempio viene prodotto l'output seguente:

<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>

Vedi anche