Dieser Artikel wurde maschinell übersetzt. Wenn Sie die englische Version des Artikels anzeigen möchten, aktivieren Sie das Kontrollkästchen Englisch. Sie können den englischen Text auch in einem Popupfenster anzeigen, indem Sie den Mauszeiger über den Text bewegen.
Übersetzung
Englisch

XElement.Load-Methode: (String, LoadOptions)

 

Veröffentlicht: Oktober 2016

Lädt ein XElement aus einer Datei, wobei optional Leerraum und Zeileninformationen beibehalten werden und der Basis-URI festgelegt wird.

Namespace:   System.Xml.Linq
Assembly:  System.Xml.Linq (in System.Xml.Linq.dll)

public static XElement Load(
	string uri,
	LoadOptions options
)

Parameter

uri
Type: System.String

Eine URI-Zeichenfolge, die auf die Datei verweist, die in ein XElementgeladen werden soll.

options
Type: System.Xml.Linq.LoadOptions

Ein LoadOptions, das Leerraumverhalten angibt und festlegt, ob Basis-URI- und Zeileninformationen geladen werden.

Rückgabewert

Type: System.Xml.Linq.XElement

Ein XElement mit dem Inhalt der angegebenen Datei.

Wenn das Quell-XML eingezogen wird, wird durch Festlegen der PreserveWhitespace -flag in options bewirkt, dass den Reader zum Lesen der gesamte Leerraum in der XML-Quelle. Knoten vom Typ XText für signifikante und nicht signifikante Leerraum erstellt werden.

Wenn das Quell-XML eingezogen wird, wird nicht durch Festlegen der PreserveWhitespace -flag in options bewirkt, dass den Reader, der nicht signifikante Leerraum in der XML-Quelle zu ignorieren. Die XML-Struktur wird ohne Textknoten für nicht signifikante Leerraum erstellt.

Wenn das Quell-XML nicht eingezogen ist, wird durch Festlegen der PreserveWhitespace -flag in options hat keine Auswirkungen. Signifikanter Leerraum wird weiterhin erhalten, und es gibt keine Passage mit insignifikante Leerzeichen, die die Erstellung von weitere Leerraumtextknoten verursachen könnten.

Weitere Informationen finden Sie unter Beibehaltung von Leerraum beim Laden oder Analysieren der XML3 und Beibehaltung von Leerraum während Serializing1.

Verwendung Parse zum Erstellen einer XElement aus einer Zeichenfolge, die XML enthält.

Es ist eine Leistungseinbuße, wenn Sie festlegen der SetBaseUri und SetLineInfo Flags.

Die Basis-URI und die Zeileninformationen sind genau unmittelbar nach dem Laden des XML-Dokuments. Wenn Sie die XML-Struktur nach dem Laden des Dokuments ändern, ist die base-URI- und Zeileninformationen Informationen möglicherweise unbrauchbar.

LINQ to XML Funktionalität basiert auf XmlReader. Aus diesem Grund können Sie durch ausgelöste Ausnahmen abfangen der XmlReader.Create Überladen von Methoden und die XmlReader Methoden, die das Dokument lesen und analysieren.

Im folgende Beispiel lädt eine XElement aus einer Datei auf zwei unterschiedliche Arten: Leerraum und Leerraum nicht beibehalten. Anschließend wird eine Abfrage verwendet, um die Anzahl von Leerraumknoten in die resultierende XML-Struktur zu bestimmen.


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

Dieses Beispiel erzeugt die folgende Ausgabe:


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

Im folgende Beispiel lädt die base-URI- und Zeileninformationen Informationen, die die Datei geladen. Klicken Sie dann den Basis-URI- und Zeileninformationen ausgegeben.

Dieses Beispiel verwendet die folgenden Ressourcendatei: XML-Beispieldatei: Typische Bestellung (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);

Dieses Beispiel erzeugt die folgende Ausgabe:


                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

Universelle Windows-Plattform
Verfügbar seit 8
.NET Framework
Verfügbar seit 3.5
Portierbare Klassenbibliothek
Unterstützt in: portierbare .NET-Plattformen
Silverlight
Verfügbar seit 2.0
Windows Phone Silverlight
Verfügbar seit 7.0
Windows Phone
Verfügbar seit 8.1
Zurück zum Anfang
Anzeigen: