Sdílet prostřednictvím


XDocument.Load Metoda

Definice

Vytvoří nový XDocument ze souboru určeného identifikátorem URI, z objektu TextReadernebo z XmlReader.

Přetížení

Load(Stream)

Vytvoří novou XDocument instanci pomocí zadaného datového proudu.

Load(TextReader)

Vytvoří novou XDocument z objektu TextReader.

Load(String)

Vytvoří novou XDocument ze souboru.

Load(XmlReader)

Vytvoří novou XDocument z objektu XmlReader.

Load(Stream, LoadOptions)

Vytvoří novou XDocument instanci pomocí zadaného datového proudu, případně zachováním prázdného místa, nastavením základního identifikátoru URI a zachováním informací o řádku.

Load(TextReader, LoadOptions)

Vytvoří novou XDocument z volitelného zachování prázdného TextReadermísta, nastavení základního identifikátoru URI a zachování informací o řádku.

Load(String, LoadOptions)

Vytvoří novou XDocument ze souboru, volitelně zachová prázdné místo, nastaví základní identifikátor URI a zachová informace o řádku.

Load(XmlReader, LoadOptions)

XDocument Načte z XmlReader, volitelně nastavení základního identifikátoru URI a zachování informací o řádku.

Poznámky

Pomocí jednoho z přetížení této metody můžete načíst XDocument ze souboru, TextReaderXmlReadernebo z .

Chcete-li vytvořit XDocument z řetězce, který obsahuje XML, použijte Parse.

Load(Stream)

Vytvoří novou XDocument instanci pomocí zadaného datového proudu.

public:
 static System::Xml::Linq::XDocument ^ Load(System::IO::Stream ^ stream);
public static System.Xml.Linq.XDocument Load (System.IO.Stream stream);
static member Load : System.IO.Stream -> System.Xml.Linq.XDocument
Public Shared Function Load (stream As Stream) As XDocument

Parametry

stream
Stream

Datový proud, který obsahuje data XML.

Návraty

XDocument

Objekt XDocument , který čte data obsažená v datovém proudu.

Poznámky

Pokud chcete řídit možnosti načtení, použijte Load přetížení, které přebírá LoadOptions jako parametr.

Funkce načítání LINQ to XML je postavena na XmlReader. Proto můžete zachytit všechny výjimky, které jsou vyvolán metodami XmlReader.Create přetížení a XmlReader metodami, které čtou a parsují dokument.

Pokud potřebujete upravit XmlReaderSettings, postupujte takto:

  1. XmlReader Vytvořte voláním jednoho z Create přetížení, které jako parametr přebírajíXmlReaderSettings.

  2. XmlReader Předejte jednu z Load přetíženíXDocument, která přebírá XmlReader jako parametr.

Platí pro

Load(TextReader)

Vytvoří novou XDocument z objektu TextReader.

public:
 static System::Xml::Linq::XDocument ^ Load(System::IO::TextReader ^ textReader);
public static System.Xml.Linq.XDocument Load (System.IO.TextReader textReader);
static member Load : System.IO.TextReader -> System.Xml.Linq.XDocument
Public Shared Function Load (textReader As TextReader) As XDocument

Parametry

textReader
TextReader

A TextReader , který obsahuje obsah pro XDocument.

Návraty

XDocument

Obsah XDocument zadaného TextReadersouboru .

Příklady

Následující příklad vytvoří dokument z StringReader.

TextReader tr = new StringReader("<Root>Content</Root>");  
XDocument doc = XDocument.Load(tr);  
Console.WriteLine(doc);  
Dim tr As TextReader = New StringReader("<Root>Content</Root>")  
Dim doc As XDocument = XDocument.Load(tr)  
Console.WriteLine(doc)  

Tento příklad vytvoří následující výstup:

<Root>Content</Root>  

Poznámky

funkce načítání LINQ to XML je postavena na XmlReader. Proto můžete zachytit všechny výjimky, které jsou vyvolán metodami XmlReader.Create přetížení a XmlReader metodami, které čtou a parsují dokument.

Viz také

Platí pro

Load(String)

Vytvoří novou XDocument ze souboru.

public:
 static System::Xml::Linq::XDocument ^ Load(System::String ^ uri);
public static System.Xml.Linq.XDocument Load (string uri);
static member Load : string -> System.Xml.Linq.XDocument
Public Shared Function Load (uri As String) As XDocument

Parametry

uri
String

Řetězec identifikátoru URI, který odkazuje na soubor, který se má načíst do nového XDocumentsouboru .

Návraty

XDocument

Obsahuje XDocument obsah zadaného souboru.

Příklady

Následující příklad ukazuje, jak načíst XDocument ze souboru.

Tento příklad používá následující dokument XML:

Ukázkový soubor XML: Typická nákupní objednávka (LINQ to XML)

XDocument doc = XDocument.Load("PurchaseOrder.xml");  
Console.WriteLine(doc);  
Dim doc As XDocument = XDocument.Load("PurchaseOrder.xml")  
Console.WriteLine(doc)  

Tento příklad vytvoří následující výstup:

<PurchaseOrder PurchaseOrderNumber="99503" OrderDate="1999-10-20">  
  <Address Type="Shipping">  
    <Name>Ellen Adams</Name>  
    <Street>123 Maple Street</Street>  
    <City>Mill Valley</City>  
    <State>CA</State>  
    <Zip>10999</Zip>  
    <Country>USA</Country>  
  </Address>  
  <Address Type="Billing">  
    <Name>Tai Yee</Name>  
    <Street>8 Oak Avenue</Street>  
    <City>Old Town</City>  
    <State>PA</State>  
    <Zip>95819</Zip>  
    <Country>USA</Country>  
  </Address>  
  <DeliveryNotes>Please leave packages in shed by driveway.</DeliveryNotes>  
  <Items>  
    <Item PartNumber="872-AA">  
      <ProductName>Lawnmower</ProductName>  
      <Quantity>1</Quantity>  
      <USPrice>148.95</USPrice>  
      <Comment>Confirm this is electric</Comment>  
    </Item>  
    <Item PartNumber="926-AA">  
      <ProductName>Baby Monitor</ProductName>  
      <Quantity>2</Quantity>  
      <USPrice>39.98</USPrice>  
      <ShipDate>1999-05-21</ShipDate>  
    </Item>  
  </Items>  
</PurchaseOrder>  

Poznámky

Tato metoda používá podkladový kód XmlReader pro čtení XML do stromu XML.

Slouží Parse k vytvoření XDocument řetězce obsahujícího XML.

LINQ to XML funkce načítání je postavena na XmlReader. Proto můžete zachytit všechny výjimky, které jsou vyvolán metodami XmlReader.Create přetížení a XmlReader metodami, které čtou a parsují dokument.

Viz také

Platí pro

Load(XmlReader)

Vytvoří novou XDocument z objektu XmlReader.

public:
 static System::Xml::Linq::XDocument ^ Load(System::Xml::XmlReader ^ reader);
public static System.Xml.Linq.XDocument Load (System.Xml.XmlReader reader);
static member Load : System.Xml.XmlReader -> System.Xml.Linq.XDocument
Public Shared Function Load (reader As XmlReader) As XDocument

Parametry

reader
XmlReader

AXmlReader, který obsahuje obsah .XDocument

Návraty

XDocument

Obsah XDocument zadaného XmlReadersouboru .

Příklady

Následující příklad vytvoří dokument DOM, vytvoří XmlNodeReader z dokumentu DOM, vytvoří XDocument pomocí XmlNodeReader.

// Create a DOM document with some content.  
XmlDocument doc = new XmlDocument();  
XmlElement child = doc.CreateElement("Child");  
child.InnerText = "child contents";  
XmlElement root = doc.CreateElement("Root");  
root.AppendChild(child);  
doc.AppendChild(root);  

// create a reader and move to the content  
using (XmlNodeReader nodeReader = new XmlNodeReader(doc)) {  
    // 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);  
    Console.WriteLine(xRoot);  
}  
' Create a DOM document with some content.  
Dim doc As XmlDocument = New XmlDocument()  
Dim child As XmlElement = doc.CreateElement("Child")  
child.InnerText = "child contents"  
Dim root As XmlElement = doc.CreateElement("Root")  
root.AppendChild(child)  
doc.AppendChild(root)  

' create a reader and move to the content  
Using nodeReader = New XmlNodeReader(doc)  
    ' the reader must be in the Interactive state in order to  
    ' create a LINQ to XML tree from it.  
    nodeReader.MoveToContent()  

    Dim xRoot As XDocument = XDocument.Load(nodeReader)  
    Console.WriteLine(xRoot)  
End Using  

Tento příklad vytvoří následující výstup:

<Root>  
  <Child>child contents</Child>  
</Root>  

Poznámky

Jedním z možných použití této metody je vytvoření kopie dokumentu DOM ve stromu LINQ to XML. Uděláte to tak, že vytvoříte XmlNodeReader z dokumentu DOM a pak použijete XmlNodeReader k vytvoření objektu XDocument.

LINQ to XML funkce načítání je postavena na XmlReader. Proto můžete zachytit všechny výjimky, které jsou vyvolán metodami XmlReader.Create přetížení a XmlReader metodami, které čtou a parsují dokument.

Viz také

Platí pro

Load(Stream, LoadOptions)

Vytvoří novou XDocument instanci pomocí zadaného datového proudu, případně zachováním prázdného místa, nastavením základního identifikátoru URI a zachováním informací o řádku.

public:
 static System::Xml::Linq::XDocument ^ Load(System::IO::Stream ^ stream, System::Xml::Linq::LoadOptions options);
public static System.Xml.Linq.XDocument Load (System.IO.Stream stream, System.Xml.Linq.LoadOptions options);
static member Load : System.IO.Stream * System.Xml.Linq.LoadOptions -> System.Xml.Linq.XDocument
Public Shared Function Load (stream As Stream, options As LoadOptions) As XDocument

Parametry

stream
Stream

Datový proud obsahující data XML.

options
LoadOptions

Určuje LoadOptions , jestli se mají načíst základní identifikátor URI a informace o řádku.

Návraty

XDocument

Objekt XDocument , který čte data obsažená ve streamu.

Poznámky

Funkce načítání LINQ to XML je postavena na XmlReader. Proto můžete zachytit všechny výjimky, které jsou vyvolán metodami XmlReader.Create přetížení a XmlReader metodami, které čtou a parsují dokument.

Pokud potřebujete upravit XmlReaderSettings, postupujte takto:

  1. XmlReader Vytvořte jednu z Create přetížení, která přebírá XmlReaderSettings jako parametr.

  2. XmlReader Předejte do jednoho z Load přetíženíXDocument, které přebírá XmlReader jako parametr.

Platí pro

Load(TextReader, LoadOptions)

Vytvoří novou XDocument z volitelného zachování prázdného TextReadermísta, nastavení základního identifikátoru URI a zachování informací o řádku.

public:
 static System::Xml::Linq::XDocument ^ Load(System::IO::TextReader ^ textReader, System::Xml::Linq::LoadOptions options);
public static System.Xml.Linq.XDocument Load (System.IO.TextReader textReader, System.Xml.Linq.LoadOptions options);
static member Load : System.IO.TextReader * System.Xml.Linq.LoadOptions -> System.Xml.Linq.XDocument
Public Shared Function Load (textReader As TextReader, options As LoadOptions) As XDocument

Parametry

textReader
TextReader

ATextReader, který obsahuje obsah .XDocument

options
LoadOptions

Určuje LoadOptions chování prázdných znaků a určuje, jestli se mají načíst základní identifikátor URI a řádkové informace.

Návraty

XDocument

Obsahuje XDocument XML, který byl načten ze zadaného TextReadersouboru .

Příklady

Následující příklad vytvoří dokument z StringReader.

TextReader sr;  
int whiteSpaceNodes;  

sr = new StringReader("<Root> <Child> </Child> </Root>");  
XDocument xmlTree1 = XDocument.Load(sr, LoadOptions.None);  
sr.Close();  
whiteSpaceNodes = xmlTree1  
    .Element("Root")  
    .DescendantNodesAndSelf()  
    .OfType<XText>()  
    .Where(tNode => tNode.ToString().Trim().Length == 0)  
    .Count();  
Console.WriteLine("Count of white space nodes (not preserving whitespace): {0}", whiteSpaceNodes);  

sr = new StringReader("<Root> <Child> </Child> </Root>");  
XDocument xmlTree2 = XDocument.Load(sr, LoadOptions.PreserveWhitespace);  
sr.Close();  
whiteSpaceNodes = xmlTree2  
    .Element("Root")  
    .DescendantNodesAndSelf()  
    .OfType<XText>()  
    .Where(tNode => tNode.ToString().Trim().Length == 0)  
    .Count();  
Console.WriteLine("Count of white space nodes (preserving whitespace): {0}", whiteSpaceNodes);  
Dim sr As TextReader  
Dim whiteSpaceNodes As Integer  

sr = New StringReader("<Root> <Child> </Child> </Root>")  
Dim xmlTree1 As XDocument = XDocument.Load(sr, LoadOptions.None)  
sr.Close()  
whiteSpaceNodes = xmlTree1 _  
              .Element("Root") _  
              .DescendantNodesAndSelf() _  
              .OfType(Of XText)() _  
              .Where(Function(ByVal tNode As XNode) tNode. _  
                  ToString().Trim().Length = 0).Count()  
Console.WriteLine("Count of white space nodes (not preserving whitespace): {0}", whiteSpaceNodes)  

sr = New StringReader("<Root> <Child> </Child> </Root>")  
Dim xmlTree2 As XDocument = XDocument.Load(sr, LoadOptions.PreserveWhitespace)  
sr.Close()  
whiteSpaceNodes = xmlTree2 _  
              .Element("Root") _  
              .DescendantNodesAndSelf() _  
              .OfType(Of XText)() _  
              .Where(Function(ByVal tNode As XNode) tNode. _  
                  ToString().Trim().Length = 0).Count()  
Console.WriteLine("Count of white space nodes (preserving whitespace): {0}", whiteSpaceNodes)  

Tento příklad vytvoří následující výstup:

Count of white space nodes (not preserving whitespace): 0  
Count of white space nodes (preserving whitespace): 3  

Poznámky

Pokud je zdrojový kód XML odsazený, nastavení PreserveWhitespace příznaku options způsobí, že čtenář přečte všechny prázdné znaky ve zdrojovém XML. Uzly typu XText se vytvářejí pro významné i nevýznamné prázdné místo.

Pokud je zdrojový kód XML odsazený, nenastavíte PreserveWhitespace příznak options , aby čtenář ignoroval všechny nevýznamné prázdné znaky ve zdrojovém XML. Strom XML se vytvoří bez jakýchkoli textových uzlů pro nevýznamné prázdné místo.

Pokud zdrojový XML není odsazený, nastavení příznaku PreserveWhitespace options nemá žádný vliv. Významné prázdné místo je stále zachováno a neexistují žádné rozsahy nevýznamného prázdného místa, které by mohly způsobit vytvoření více prázdných textových uzlů.

Další informace najdete v tématu Zachování prázdného místa při načítání nebo analýze XML a zachování prázdného místa při serializaci.

Slouží Parse k vytvoření XElement řetězce obsahujícího XML.

Nastavení SetBaseUri není platné při načítání z objektu TextReader.

Pokud nastavíte příznak, dojde k trestu výkonu SetLineInfo .

Informace o řádku jsou přesné okamžitě po načtení dokumentu XML. Pokud po načtení dokumentu upravíte strom XML, můžou se informace o řádku stát bez významu.

LINQ to XML funkce načítání je postavena na XmlReader. Proto můžete zachytit všechny výjimky, které jsou vyvolán metodami XmlReader.Create přetížení a XmlReader metodami, které čtou a parsují dokument.

Viz také

Platí pro

Load(String, LoadOptions)

Vytvoří novou XDocument ze souboru, volitelně zachová prázdné místo, nastaví základní identifikátor URI a zachová informace o řádku.

public:
 static System::Xml::Linq::XDocument ^ Load(System::String ^ uri, System::Xml::Linq::LoadOptions options);
public static System.Xml.Linq.XDocument Load (string uri, System.Xml.Linq.LoadOptions options);
static member Load : string * System.Xml.Linq.LoadOptions -> System.Xml.Linq.XDocument
Public Shared Function Load (uri As String, options As LoadOptions) As XDocument

Parametry

uri
String

Řetězec identifikátoru URI, který odkazuje na soubor, který se má načíst do nového XDocumentsouboru .

options
LoadOptions

Určuje LoadOptions chování prázdných znaků a určuje, jestli se mají načíst základní identifikátor URI a řádkové informace.

Návraty

XDocument

Obsahuje XDocument obsah zadaného souboru.

Příklady

Následující příklad ukazuje, jak načíst XDocument ze souboru.

Tento příklad používá následující dokument XML:

Ukázkový soubor XML: Typická nákupní objednávka (LINQ to XML)

XDocument doc1 = XDocument.Load("PurchaseOrder.xml", LoadOptions.None);  
Console.WriteLine("nodes if not preserving whitespace: {0}", doc1.DescendantNodes().Count());  

XDocument doc2 = XDocument.Load("PurchaseOrder.xml", LoadOptions.PreserveWhitespace);  
Console.WriteLine("nodes if preserving whitespace: {0}", doc2.DescendantNodes().Count());  
Dim doc1 As XDocument = XDocument.Load("PurchaseOrder.xml", LoadOptions.None)  
Console.WriteLine("nodes if not preserving whitespace: {0}", doc1.DescendantNodes().Count())  

Dim doc2 As XDocument = XDocument.Load("PurchaseOrder.xml", LoadOptions.PreserveWhitespace)  
Console.WriteLine("nodes if preserving whitespace: {0}", doc2.DescendantNodes().Count())  

Tento příklad vytvoří následující výstup:

nodes if not preserving whitespace: 48  
nodes if preserving whitespace: 82  

Poznámky

Pokud je zdrojový kód XML odsazený, nastavení PreserveWhitespace příznaku options způsobí, že čtenář přečte všechny prázdné znaky ve zdrojovém XML. Uzly typu XText se vytvářejí pro významné i nevýznamné prázdné místo.

Pokud je zdrojový kód XML odsazený, nenastavíte PreserveWhitespace příznak options , aby čtenář ignoroval všechny nevýznamné prázdné znaky ve zdrojovém XML. Strom XML se vytvoří bez jakýchkoli textových uzlů pro nevýznamné prázdné místo.

Pokud zdrojový XML není odsazený, nastavení příznaku PreserveWhitespace options nemá žádný vliv. Významné prázdné místo je stále zachováno a neexistují žádné rozsahy nevýznamného prázdného místa, které by mohly způsobit vytvoření více prázdných textových uzlů.

Další informace najdete v tématu Zachování prázdného místa při načítání nebo analýze XML a zachování prázdného místa při serializaci.

Slouží Parse k vytvoření XDocument řetězce obsahujícího XML.

Pokud nastavíte SetBaseUri a příznaky nastavíte, dojde k trestům výkonu SetLineInfo .

Základní identifikátor URI a informace o řádku jsou přesné hned po načtení dokumentu XML. Pokud po načtení dokumentu upravíte strom XML, může se základní identifikátor URI a řádkové informace stát bez významu.

LINQ to XML funkce načítání je postavena na XmlReader. Proto můžete zachytit všechny výjimky, které jsou vyvolán metodami XmlReader.Create přetížení a XmlReader metodami, které čtou a parsují dokument.

Viz také

Platí pro

Load(XmlReader, LoadOptions)

XDocument Načte z XmlReader, volitelně nastavení základního identifikátoru URI a zachování informací o řádku.

public:
 static System::Xml::Linq::XDocument ^ Load(System::Xml::XmlReader ^ reader, System::Xml::Linq::LoadOptions options);
public static System.Xml.Linq.XDocument Load (System.Xml.XmlReader reader, System.Xml.Linq.LoadOptions options);
static member Load : System.Xml.XmlReader * System.Xml.Linq.LoadOptions -> System.Xml.Linq.XDocument
Public Shared Function Load (reader As XmlReader, options As LoadOptions) As XDocument

Parametry

reader
XmlReader

AXmlReader, který bude přečteno pro obsah .XDocument

options
LoadOptions

Určuje LoadOptions , jestli se mají načíst základní identifikátor URI a informace o řádku.

Návraty

XDocument

Obsahuje XDocument XML, který byl načten ze zadaného XmlReadersouboru .

Příklady

Následující příklad načte informace o řádku, které se načte XmlReaderz . Pak vytiskne informace o řádcích.

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);  
}  
Dim markup As String = _  
    "<Root>" & Environment.NewLine & _  
    "    <Child>" & Environment.NewLine & _  
    "        <GrandChild/>" & Environment.NewLine & _  
    "    </Child>" & Environment.NewLine & _  
    "</Root>"  

' Create a reader and move to the content.  
Using nodeReader As XmlReader = 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()  

    Dim xRoot As XDocument = 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), _  
        "--------")  
    For Each e As XElement In xRoot.Elements("Root").DescendantsAndSelf()  
        Console.WriteLine("{0}{1}{2}", _  
            ("".PadRight(e.Ancestors().Count() * 2) & e.Name.ToString()).PadRight(20), _  
            (DirectCast(e, IXmlLineInfo)).LineNumber.ToString().PadRight(5), _  
            (DirectCast(e, IXmlLineInfo)).LinePosition)  
    Next  
End Using  

Tento příklad vytvoří následující výstup:

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

Poznámky

XmlNodeReader Vytvořením dokumentu DOM a následným použitím XmlNodeReader příkazu k vytvoření XElementtéto metody můžete vytvořit kopii dokumentu DOM ve stromu LINQ to XML.

Slouží Parse k vytvoření XDocument řetězce obsahujícího XML.

Nastavení PreserveWhitespace není platné při načítání z objektu XmlReader. Bude XmlReader nakonfigurovaná tak, aby buď četla prázdné znaky, nebo ne. Strom LINQ to XML se naplní prázdnými uzly, které čtečka otevře. Toto chování bude bez ohledu na to, jestli PreserveWhitespace je nastavená nebo ne.

Může XmlReader mít platný základní identifikátor URI nebo ne. Pokud nastavíte SetBaseUri, základní identifikátor URI se nastaví ve stromu XML ze základního identifikátoru XmlReaderURI, který je hlášen .

Může XmlReader mít platné informace o řádku nebo ne. Pokud nastavíte SetLineInfo, budou informace o řádku nastaveny ve stromu XML z informací řádku, které jsou hlášeny XmlReader.

Pokud nastavíte příznak, dojde k trestu výkonu SetLineInfo .

Informace o řádku jsou přesné okamžitě po načtení dokumentu XML. Pokud po načtení dokumentu upravíte strom XML, můžou se informace o řádku stát bez významu.

LINQ to XML funkce načítání je postavena na XmlReader. Proto můžete zachytit všechny výjimky, které jsou vyvolán metodami XmlReader.Create přetížení a XmlReader metodami, které čtou a parsují dokument.

Viz také

Platí pro