Procedura: creare un albero da un oggetto XmlReader
In questo argomento viene illustrato come creare un albero XML direttamente da un oggetto XmlReader. Per creare XElement da XmlReader, è necessario posizionare 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 XmlReader in un elemento prima di creare l'albero XML da XmlReader.
Esempio
Nell'esempio viene usato il seguente documento XML: File XML di esempio: Books (LINQ to XML)
Nel codice seguente viene creato un oggetto T:System.Xml.XmlReader, quindi vengono letti i nodi fino a individuare il primo nodo di elemento. Viene quindi 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)
Questo esempio produce il seguente output:
<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>