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 XElement.Load (String, LoadOptions)

 

Data di pubblicazione: ottobre 2016

Carica XElement da un file, facoltativamente preservando lo spazio vuoto, 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 XElement Load(
	string uri,
	LoadOptions options
)

Parametri

uri
Type: System.String

Stringa URI che fa riferimento al file da caricare in XElement.

options
Type: System.Xml.Linq.LoadOptions

Oggetto LoadOptions che specifica il comportamento dello spazio vuoto e se caricare l'URI di base e le informazioni sulla riga.

Valore restituito

Type: System.Xml.Linq.XElement

Oggetto XElement che include il contenuto del file specificato.

Se l'origine XML rientrato, l'impostazione di PreserveWhitespace flag in options fa sì che il lettore leggere tutti gli spazi vuoti nel documento XML di origine. Nodi di tipo XText vengono creati per spazi vuoti significativi e significativo.

Se l'origine XML rientrato, se non viene impostata la PreserveWhitespace flag in options fa sì che il lettore ignorare tutti gli spazi vuoti non significativi nel codice XML di origine. Struttura ad albero XML viene creato senza nodi di testo per gli spazi vuoti non significativi.

Se l'origine XML non è rientrato, l'impostazione di PreserveWhitespace flag in options non ha alcun effetto. Gli spazi vuoti significativi viene comunque mantenuto e non sono presenti intervalli di spazi vuoti non significativi che potrebbero comportare la creazione di più nodi di testo di spazi vuoti.

Per altre informazioni, vedere Conservando lo spazio vuoto durante il caricamento o l'analisi XML3 e Conservando lo spazio vuoto durante la Serializing1.

Utilizzare Parse per creare un XElement da una stringa che contiene XML.

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

L'URI di base e le informazioni sulla 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 di riga e l'URI di base potrebbero risultare inutili.

LINQ alla 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 viene caricato un XElement da un file in due modi diversi: conservando lo spazio vuoto e non il mantenimento degli spazi. Viene quindi utilizzata una query per determinare il numero di nodi con spazi vuoti nell'albero XML risulta.


                XElement xmlTree1 = XElement.Parse("<Root> <Child>  </Child> </Root>", LoadOptions.PreserveWhitespace);
xmlTree1.Save("Tree.xml");
Console.WriteLine(xmlTree1);

int whiteSpaceNodes;
XElement xmlTree2 = XElement.Load("Tree.xml",
    LoadOptions.None);
whiteSpaceNodes = xmlTree2
    .DescendantNodesAndSelf()
    .OfType<XText>()
    .Where(tNode => tNode.ToString().Trim().Length == 0)
    .Count();
Console.WriteLine("Count of white space nodes (not preserving whitespace): {0}", whiteSpaceNodes);

XElement xmlTree3 = XElement.Load("Tree.xml",
    LoadOptions.PreserveWhitespace);
whiteSpaceNodes = xmlTree3
    .DescendantNodesAndSelf()
    .OfType<XText>()
    .Where(tNode => tNode.ToString().Trim().Length == 0)
    .Count();
Console.WriteLine("Count of white space nodes (preserving whitespace): {0}", whiteSpaceNodes);

Questo esempio produce il seguente output:


                <Root> <Child>  </Child> </Root>
Count of white space nodes (not preserving whitespace): 0
Count of white space nodes (preserving whitespace): 3

Nell'esempio seguente carica le informazioni di riga e l'URI di base durante il caricamento del file. Stampa quindi l'URI di base e le informazioni sulla riga.

In questo esempio viene utilizzato il seguente file di risorse: File XML di esempio: Tipico ordine di acquisto (LINQ to XML)&3;.


                XElement po = XElement.Load("PurchaseOrder.xml",
    LoadOptions.SetBaseUri | LoadOptions.SetLineInfo);
string[] splitUri = po.BaseUri.Split('/');
Console.WriteLine("BaseUri: {0}", splitUri[splitUri.Length - 1]);
Console.WriteLine();
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 po.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:


                BaseUri: PurchaseOrder.xml

Element Name        Line Position
------------        ---- --------
PurchaseOrder       2    2
  Address           3    4
    Name            4    6
    Street          5    6
    City            6    6
    State           7    6
    Zip             8    6
    Country         9    6
  Address           11   4
    Name            12   6
    Street          13   6
    City            14   6
    State           15   6
    Zip             16   6
    Country         17   6
  DeliveryNotes     19   4
  Items             20   4
    Item            21   6
      ProductName   22   8
      Quantity      23   8
      USPrice       24   8
      Comment       25   8
    Item            27   6
      ProductName   28   8
      Quantity      29   8
      USPrice       30   8
      ShipDate      31   8

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: