Dieser Artikel wurde manuell übersetzt. Bewegen Sie den Mauszeiger über die Sätze im Artikel, um den Originaltext anzuzeigen.
Übersetzung
Original
Dieser Artikel wurde noch nicht bewertet - Dieses Thema bewerten.

XDocument.Load-Methode (XmlReader, LoadOptions)

Lädt ein XElement aus einem XmlReader, wobei optional der Basis-URI festgelegt wird und die Zeileninformationen beibehalten werden.

Namespace:  System.Xml.Linq
Assembly:  System.Xml.Linq (in System.Xml.Linq.dll)
public static XDocument Load(
	XmlReader reader,
	LoadOptions options
)

Parameter

reader
Typ: System.Xml.XmlReader
Ein XmlReader, dessen Inhalt des XDocument gelesen wird.
options
Typ: System.Xml.Linq.LoadOptions
Ein LoadOptions, das angibt, ob Basis-URI- und Zeileninformationen geladen werden.

Rückgabewert

Typ: System.Xml.Linq.XDocument
Ein XDocument, das die XML-Daten enthält, die aus dem angegebenen XmlReader gelesen wurden.

Wenn ein XmlNodeReader aus einem DOM-Dokument erstellt und dann mit dem XmlNodeReader ein XElement erstellt wird, kann diese Methode zum Erstellen einer Kopie eines DOM-Dokuments in einer LINQ to XML-Struktur verwendet werden.

Verwenden Sie Parse, um ein XDocument aus einer Zeichenfolge mit XML zu erstellen.

Beim Laden aus einem XmlReader ist das Festlegen von PreserveWhitespace nicht zulässig. Der XmlReader wird so konfiguriert, dass Leerraum entweder gelesen oder nicht gelesen wird. Die LINQ to XML-Struktur wird mit den Leerraumknoten aufgefüllt, die der Reader angibt. Das Festlegen von PreserveWhitespace bleibt ohne Auswirkung auf dieses Verhalten.

Der XmlReader kann über einen gültigen Basis-URI oder über keinen gültigen Basis-URI verfügen. Wenn Sie SetBaseUri festlegen, wird der Basis-URI in der XML-Struktur anhand des Basis-URI festgelegt, der vom XmlReader angegeben wird.

Der XmlReader kann über gültige Zeileninformationen oder über keine gültigen Zeileninformationen verfügen. Wenn Sie SetLineInfo festlegen, werden die Zeileninformationen in der XML-Struktur anhand der die Zeileninformationen festgelegt, die vom XmlReader angegeben werden.

Das Festlegen des SetLineInfo-Flags führt zu einer Leistungseinbuße.

Die Zeileninformationen werden direkt nach dem Laden des XML-Dokuments exakt angegeben. Wenn Sie die XML-Struktur nach dem Laden des Dokuments ändern, sind die Zeileninformationen möglicherweise unbrauchbar.

Die Ladefunktionalität von LINQ to XML basiert auf XmlReader. Daher können Sie alle Ausnahmen abfangen, die von den XmlReader.Create-Überladungsmethoden und den XmlReader-Methoden ausgelöst werden, die das Dokument lesen und analysieren.

Im folgenden Beispiel werden die Zeileninformationen aus dem XmlReader geladen. Anschließend werden die Zeileninformationen ausgegeben.

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

Dieses Beispiel erzeugt folgende Ausgabe:

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

.NET Framework

Unterstützt in: 4, 3.5

.NET Framework Client Profile

Unterstützt in: 4, 3.5 SP1

Windows 7, Windows Vista SP1 oder höher, Windows XP SP3, Windows Server 2008 (Server Core wird nicht unterstützt), Windows Server 2008 R2 (Server Core wird mit SP1 oder höher unterstützt), Windows Server 2003 SP2

.NET Framework unterstützt nicht alle Versionen sämtlicher Plattformen. Eine Liste der unterstützten Versionen finden Sie unter Systemanforderungen für .NET Framework.
Fanden Sie dies hilfreich?
(1500 verbleibende Zeichen)
Community-Inhalt Hinzufügen
Anmerkungen FAQ