Dieser Artikel wurde manuell übersetzt. Bewegen Sie den Mauszeiger über die Sätze im Artikel, um den Originaltext anzuzeigen. |
Übersetzung
Original
|
XDocument.Load-Methode (XmlReader, LoadOptions)
Assembly: System.Xml.Linq (in System.Xml.Linq.dll)
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.XDocumentEin 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
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.