Questo articolo è stato tradotto automaticamente. Per visualizzare l'articolo in inglese, selezionare la casella di controllo Inglese. È possibile anche visualizzare il testo inglese in una finestra popup posizionando il puntatore del mouse sopra il testo.
Traduzione
Inglese

Metodo XDocument.Load (XmlReader, LoadOptions)

 

Data di pubblicazione: ottobre 2016

Carica un XDocument da un XmlReader, facoltativamente impostando l'URI di base e mantenendo le informazioni sulla riga.

Spazio dei nomi:   System.Xml.Linq
Assembly:  System.Xml.Linq (in System.Xml.Linq.dll)

public static XDocument Load(
	XmlReader reader,
	LoadOptions options
)

Parametri

reader
Type: System.Xml.XmlReader

Oggetto XmlReader che verrà letto per il contenuto dell'oggetto XDocument.

options
Type: System.Xml.Linq.LoadOptions

Oggetto LoadOptions che specifica se caricare informazioni sulla base di URI e riga.

Valore restituito

Type: System.Xml.Linq.XDocument

Oggetto XDocument contenente il codice XML letto dall'oggetto XmlReader specificato.

Creando un XmlNodeReader da un documento DOM e viene quindi utilizzato il XmlNodeReader per creare un XElement, questo metodo può essere utilizzato per creare una copia di un documento DOM in un albero LINQ to XML.

Utilizzare Parse per creare un XDocument da una stringa che contiene il codice XML.

L'impostazione PreserveWhitespace non valido durante il caricamento da un XmlReader. Il XmlReader verrà configurato per uno spazio vuoto di lettura o non. L'albero LINQ to XML verrà popolato con i nodi spazi vuoti che dal lettore. Questo sarà il comportamento indipendentemente dal fatto che PreserveWhitespace o non è impostato.

Il XmlReader può avere un URI di base valido o non. Se si imposta SetBaseUri, la base URI verrà impostato nella struttura ad albero XML dall'URI di base che viene segnalato dal XmlReader.

Il XmlReader può avere informazioni sulla riga valide o non. Se si imposta SetLineInfo, le informazioni sulla riga verrà impostati nella struttura ad albero XML dalle informazioni di riga che viene segnalate dal XmlReader.

Si verifica una riduzione delle prestazioni se imposta la SetLineInfo flag.

Le informazioni della riga sono accurate immediatamente dopo il caricamento del documento XML. Se si modifica la struttura ad albero XML dopo il caricamento del documento, le informazioni sulla riga potrebbero risultare inutili.

LINQ per le funzionalità di caricamento del XML si basa su XmlReader. Pertanto, è possibile rilevare eventuali eccezioni generate dal XmlReader.Create overload di metodi e XmlReader metodi che leggono e analizzano il documento.

Nell'esempio seguente carica le informazioni sulla riga che viene caricato dal XmlReader. E quindi stampare le informazioni sulla riga.


                string markup =
@"<Root>
    <Child>
        <GrandChild/>
    </Child>
</Root>";

// Create a reader and move to the content.
using (XmlReader nodeReader = XmlReader.Create(new StringReader(markup)))
{
    // the reader must be in the Interactive state in order to
    // Create a LINQ to XML tree from it.
    nodeReader.MoveToContent();

    XDocument xRoot = XDocument.Load(nodeReader, LoadOptions.SetLineInfo);
    Console.WriteLine("{0}{1}{2}",
        "Element Name".PadRight(20),
        "Line".PadRight(5),
        "Position");
    Console.WriteLine("{0}{1}{2}",
        "------------".PadRight(20),
        "----".PadRight(5),
        "--------");
    foreach (XElement e in xRoot.Elements("Root").DescendantsAndSelf())
        Console.WriteLine("{0}{1}{2}",
            ("".PadRight(e.Ancestors().Count() * 2) + e.Name).PadRight(20),
            ((IXmlLineInfo)e).LineNumber.ToString().PadRight(5),
            ((IXmlLineInfo)e).LinePosition);
}

Questo esempio produce il seguente output:


                Element Name        Line Position
------------        ---- --------
Root                1    2
  Child             2    6
    GrandChild      3    10

Universal Windows Platform
Disponibile da 8
.NET Framework
Disponibile da 3.5
Libreria di classi portabile
Supportato in: piattaforme .NET portabili
Silverlight
Disponibile da 2.0
Windows Phone Silverlight
Disponibile da 7.0
Windows Phone
Disponibile da 8.1
Torna all'inizio
Mostra: