XElement.Load Metoda

Definicja

Tworzy nowy XElement z pliku określonego przez identyfikator URI, z TextReaderlub z XmlReader.Creates a new XElement from a file specified by a URI, from an TextReader, or from an XmlReader.

Przeciążenia

Load(TextReader, LoadOptions)

Ładuje XElement z TextReader, opcjonalnie zachowując odstęp i przechowując informacje o wierszach.Loads an XElement from a TextReader, optionally preserving white space and retaining line information.

Load(XmlReader, LoadOptions)

Ładuje XElement z XmlReader, opcjonalnie zachowując odstęp, ustawiając podstawowy identyfikator URI i przechowując informacje o wierszu.Loads an XElement from an XmlReader, optionally preserving white space, setting the base URI, and retaining line information.

Load(String, LoadOptions)

Ładuje XElement z pliku, opcjonalnie zachowując odstęp, ustawiając podstawowy identyfikator URI i przechowując informacje o wierszu.Loads an XElement from a file, optionally preserving white space, setting the base URI, and retaining line information.

Load(Stream, LoadOptions)

Tworzy nowe wystąpienie XElement przy użyciu określonego strumienia, opcjonalnie zachowując biały znak, ustawiając podstawowy identyfikator URI i przechowując informacje o wierszu.Creates a new XElement instance by using the specified stream, optionally preserving white space, setting the base URI, and retaining line information.

Load(TextReader)

Ładuje XElement z TextReader.Loads an XElement from a TextReader.

Load(String)

Ładuje XElement z pliku.Loads an XElement from a file.

Load(Stream)

Tworzy nowe wystąpienie XElement przy użyciu określonego strumienia.Creates a new XElement instance by using the specified stream.

Load(XmlReader)

Ładuje XElement z XmlReader.Loads an XElement from an XmlReader.

Uwagi

Można użyć jednego z przeciążeń tej metody do załadowania XElement z pliku, TextReaderlub XmlReader.You can use one of the overloads of this method to load an XElement from a file, a TextReader, or an XmlReader.

Aby utworzyć XElement z ciągu, który zawiera kod XML, należy użyć Parse.To create an XElement from a string that contains XML, use Parse.

Load(TextReader, LoadOptions)

Ładuje XElement z TextReader, opcjonalnie zachowując odstęp i przechowując informacje o wierszach.Loads an XElement from a TextReader, optionally preserving white space and retaining line information.

public:
 static System::Xml::Linq::XElement ^ Load(System::IO::TextReader ^ textReader, System::Xml::Linq::LoadOptions options);
public static System.Xml.Linq.XElement Load (System.IO.TextReader textReader, System.Xml.Linq.LoadOptions options);
static member Load : System.IO.TextReader * System.Xml.Linq.LoadOptions -> System.Xml.Linq.XElement

Parametry

textReader
TextReader

TextReader, który ma zostać odczytany dla XElement zawartości.A TextReader that will be read for the XElement content.

options
LoadOptions

LoadOptions, który określa zachowanie białych znaków i czy należy załadować podstawowe informacje o identyfikatorze URI i wierszu.A LoadOptions that specifies white space behavior, and whether to load base URI and line information.

Zwraca

XElement, który zawiera kod XML, który został odczytany z określonego TextReader.An XElement that contains the XML that was read from the specified TextReader.

Przykłady

Poniższy przykład ładuje XElement z StringReader na dwa różne sposoby: zachowywanie białych znaków i nie zachowuje białych znaków.The following example loads an XElement from a StringReader in two different ways: preserving white space, and not preserving white space. Następnie używa zapytania, aby określić liczbę białych węzłów w utworzonym drzewie XML.It then uses a query to determine the number of white space nodes in the resulting XML tree.

TextReader sr;  
int whiteSpaceNodes;  
  
sr = new StringReader("<Root> <Child> </Child> </Root>");  
XElement xmlTree1 = XElement.Load(sr, LoadOptions.None);  
sr.Close();  
whiteSpaceNodes = xmlTree1  
    .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>");  
XElement xmlTree2 = XElement.Load(sr, LoadOptions.PreserveWhitespace);  
sr.Close();  
whiteSpaceNodes = xmlTree2  
    .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 XElement = XElement.Load(sr, LoadOptions.None)  
sr.Close()  
whiteSpaceNodes = xmlTree1 _  
    .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 XElement = XElement.Load(sr, LoadOptions.PreserveWhitespace)  
sr.Close()  
whiteSpaceNodes = xmlTree2 _  
    .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)  

Ten przykład generuje następujące wyniki:This example produces the following output:

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

Poniższy przykład ładuje informacje o wierszu w miarę ładowania z TextReader.The following example loads the line information as it loads from the TextReader. Następnie drukuje informacje o wierszu.It then prints the line information.

TextReader sr = new StringReader(  
@"<Root>  
  <Child>  
    <GrandChild1/>  
    <GrandChild2/>  
  </Child>  
</Root>");  
XElement po = XElement.Load(sr,  
    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 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);  
Dim sr As TextReader = New StringReader( _  
    "<Root>" & Environment.NewLine & _  
    "  <Child>" & Environment.NewLine & _  
    "    <GrandChild1/>" & Environment.NewLine & _  
    "    <GrandChild2/>" & Environment.NewLine & _  
    "  </Child>" & Environment.NewLine & _  
    "</Root>")  
Dim po As XElement = XElement.Load(sr, 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 po.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  

Ten przykład generuje następujące wyniki:This example produces the following output:

Element Name        Line Position  
------------        ---- --------  
Root                1    2  
  Child             2    4  
    GrandChild1     3    6  
    GrandChild2     4    6  

Uwagi

Jeśli źródło XML ma wcięcie, ustawienie flagi PreserveWhitespace w options powoduje, że czytnik odczytuje wszystkie białe znaki w źródłowym kodzie XML.If the source XML is indented, setting the PreserveWhitespace flag in options causes the reader to read all white space in the source XML. Węzły typu XText są tworzone zarówno dla znaczących, jak i nieznaczących białych znaków.Nodes of type XText are created for both significant and insignificant white space.

Jeśli źródło XML ma wcięcie, a nie ustawienie flagi PreserveWhitespace w options powoduje, że czytnik zignoruje wszystkie nieznaczące białe znaki w źródłowym kodzie XML.If the source XML is indented, not setting the PreserveWhitespace flag in options causes the reader to ignore all of the insignificant white space in the source XML. Drzewo XML jest tworzone bez węzłów tekstowych dla nieznaczącego odstępu.The XML tree is created without any text nodes for insignificant white space.

Jeśli źródłowy kod XML nie ma wcięcia, ustawienie flagi PreserveWhitespace w options nie ma żadnego wpływu.If the source XML is not indented, setting the PreserveWhitespace flag in options has no effect. Wciąż jest zachowywany znaczący biały znak i nie ma żadnych nieznaczących białych znaków, które mogłyby spowodować utworzenie większej ilości białych węzłów tekstowych.Significant white space is still preserved, and there are no spans of insignificant white space that could cause the creation of more white space text nodes.

Aby uzyskać więcej informacji, zobacz zachowywanie białych znaków podczas ładowania lub analizowania kodu XML oraz zachowywania białych znaków podczas serializacji.For more information, see Preserving White Space while Loading or Parsing XML and Preserving White Space While Serializing.

Użyj Parse, aby utworzyć XElement z ciągu, który zawiera kod XML.Use Parse to create an XElement from a string that contains XML.

Ustawienie SetBaseUri nie będzie miało wpływu podczas ładowania z TextReader.Setting SetBaseUri will have no effect when loading from a TextReader.

Jeśli ustawisz flagę SetLineInfo, nastąpi spadek wydajności.There is a performance penalty if you set the SetLineInfo flag.

Informacje o wierszu są dokładne natychmiast po załadowaniu dokumentu XML.The line information is accurate immediately after loading the XML document. Jeśli zmodyfikujesz drzewo XML po załadowaniu dokumentu, informacje o wierszach mogą stać się bezużyteczne.If you modify the XML tree after loading the document, the line information may become meaningless.

Funkcja ładowania LINQ to XML jest oparta na XmlReader.LINQ to XML's loading functionality is built upon XmlReader. W związku z tym można wychwycić wszystkie wyjątki, które są zgłaszane przez metody przeciążenia XmlReader.Create i metody XmlReader, które odczytują i analizują dokument.Therefore, you might catch any exceptions that are thrown by the XmlReader.Create overload methods and the XmlReader methods that read and parse the document.

Zobacz też

Load(XmlReader, LoadOptions)

Ładuje XElement z XmlReader, opcjonalnie zachowując odstęp, ustawiając podstawowy identyfikator URI i przechowując informacje o wierszu.Loads an XElement from an XmlReader, optionally preserving white space, setting the base URI, and retaining line information.

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

Parametry

reader
XmlReader

XmlReader, który zostanie odczytany dla zawartości XElement.A XmlReader that will be read for the content of the XElement.

options
LoadOptions

LoadOptions, który określa zachowanie białych znaków i czy należy załadować podstawowe informacje o identyfikatorze URI i wierszu.A LoadOptions that specifies white space behavior, and whether to load base URI and line information.

Zwraca

XElement, który zawiera kod XML, który został odczytany z określonego XmlReader.An XElement that contains the XML that was read from the specified XmlReader.

Przykłady

Poniższy przykład ładuje informacje o wierszach, które ładuje z XmlReader.The following example loads the line information that it loads from the XmlReader. Następnie drukuje informacje o wierszu.It then prints the line information.

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();  
  
    XElement xRoot = XElement.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.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 XElement = XElement.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.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  

Ten przykład generuje następujące wyniki:This example produces the following output:

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

Uwagi

Tworząc XmlNodeReader z dokumentu DOM, a następnie używając XmlNodeReader do tworzenia XElement, ta metoda może być używana do tworzenia kopii dokumentu DOM w drzewie LINQ to XML.By creating an XmlNodeReader from a DOM document, and then using the XmlNodeReader to create an XElement, this method can be used to create a copy of a DOM document in a LINQ to XML tree.

Użyj Parse, aby utworzyć XElement z ciągu, który zawiera kod XML.Use Parse to create an XElement from a string that contains XML.

Ustawienie PreserveWhitespace nie jest prawidłowe podczas ładowania z XmlReader.Setting PreserveWhitespace is not valid when loading from a XmlReader. XmlReader zostanie skonfigurowana do odczytu białych znaków.The XmlReader will be configured to either read whitespace or not. Drzewo LINQ to XML zostanie uzupełnione węzłami odstępu, które są powierzchnie czytnika.The LINQ to XML tree will be populated with the whitespace nodes that the reader surfaces. Będzie to zachowanie bez względu na to, czy PreserveWhitespace jest ustawiona czy nie.This will be the behavior regardless of whether PreserveWhitespace is set or not.

XmlReader może mieć prawidłowy podstawowy identyfikator URI.The XmlReader may have a valid base URI or not. Jeśli ustawisz SetBaseUri, podstawowy identyfikator URI zostanie ustawiony w drzewie XML z podstawowego identyfikatora URI, który jest raportowany przez XmlReader.If you set SetBaseUri, the base URI will be set in the XML tree from the base URI that is reported by the XmlReader.

XmlReader mogą mieć prawidłowe informacje o wierszu.The XmlReader may have a valid line information or not. Jeśli ustawisz SetLineInfo, informacje o wierszu zostaną ustawione w drzewie XML na podstawie informacji o wierszu, które są raportowane przez XmlReader.If you set SetLineInfo, the line information will be set in the XML tree from the line information that is reported by the XmlReader.

Jeśli ustawisz flagę SetLineInfo, nastąpi spadek wydajności.There is a performance penalty if you set the SetLineInfo flag.

Informacje o wierszu są dokładne natychmiast po załadowaniu dokumentu XML.The line information is accurate immediately after loading the XML document. Jeśli zmodyfikujesz drzewo XML po załadowaniu dokumentu, informacje o wierszach mogą stać się bezużyteczne.If you modify the XML tree after loading the document, the line information may become meaningless.

Funkcja ładowania LINQ to XML jest oparta na XmlReader.LINQ to XML's loading functionality is built upon XmlReader. W związku z tym można wychwycić wszystkie wyjątki, które są zgłaszane przez metody przeciążenia XmlReader.Create i metody XmlReader, które odczytują i analizują dokument.Therefore, you might catch any exceptions that are thrown by the XmlReader.Create overload methods and the XmlReader methods that read and parse the document.

Zobacz też

Load(String, LoadOptions)

Ładuje XElement z pliku, opcjonalnie zachowując odstęp, ustawiając podstawowy identyfikator URI i przechowując informacje o wierszu.Loads an XElement from a file, optionally preserving white space, setting the base URI, and retaining line information.

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

Parametry

uri
String

Ciąg identyfikatora URI odwołujący się do pliku, który ma zostać załadowany do XElement.A URI string referencing the file to load into an XElement.

options
LoadOptions

LoadOptions, który określa zachowanie białych znaków i czy należy załadować podstawowe informacje o identyfikatorze URI i wierszu.A LoadOptions that specifies white space behavior, and whether to load base URI and line information.

Zwraca

XElement, który zawiera zawartość określonego pliku.An XElement that contains the contents of the specified file.

Przykłady

Poniższy przykład ładuje XElement z pliku na dwa różne sposoby: zachowywanie białych znaków i nie zachowuje białych znaków.The following example loads an XElement from a file in two different ways: preserving white space, and not preserving white space. Następnie używa zapytania, aby określić liczbę białych węzłów w utworzonym drzewie XML.It then uses a query to determine the number of white space nodes in the resulting XML tree.

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);  
Dim xmlTree1 As XElement = XElement.Parse("<Root> <Child>  </Child> </Root>", LoadOptions.PreserveWhitespace)  
xmlTree1.Save("Tree.xml")  
Console.WriteLine(xmlTree1)  
  
Dim whiteSpaceNodes As Integer  
Dim xmlTree2 As XElement = XElement.Load("Tree.xml", LoadOptions.None)  
whiteSpaceNodes = xmlTree2 _  
                  .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)  
  
Dim xmlTree3 As XElement = XElement.Load("Tree.xml", LoadOptions.PreserveWhitespace)  
whiteSpaceNodes = xmlTree3 _  
                  .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)  

Ten przykład generuje następujące wyniki:This example produces the following output:

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

Poniższy przykład ładuje podstawowy identyfikator URI i informacje o wierszu podczas ładowania pliku.The following example loads the base URI and line information as it loads the file. Następnie drukuje podstawowy identyfikator URI i informacje o wierszu.It then prints the base URI and the line information.

W tym przykładzie jest użyty następujący plik zasobu: przykładowy plik XML: typowe zamówienie zakupu (LINQ to XML).This example uses the following resource file: Sample XML File: Typical Purchase Order (LINQ to XML).

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);  
Dim po As XElement = XElement.Load("PurchaseOrder.xml", LoadOptions.SetBaseUri Or LoadOptions.SetLineInfo)  
Dim splitUri() As String = 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), _  
    "--------")  
For Each e As XElement In po.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  

Ten przykład generuje następujące wyniki:This example produces the following 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  

Uwagi

Jeśli źródło XML ma wcięcie, ustawienie flagi PreserveWhitespace w options powoduje, że czytnik odczytuje wszystkie białe znaki w źródłowym kodzie XML.If the source XML is indented, setting the PreserveWhitespace flag in options causes the reader to read all white space in the source XML. Węzły typu XText są tworzone zarówno dla znaczących, jak i nieznaczących białych znaków.Nodes of type XText are created for both significant and insignificant white space.

Jeśli źródło XML ma wcięcie, a nie ustawienie flagi PreserveWhitespace w options powoduje, że czytnik zignoruje wszystkie nieznaczące białe znaki w źródłowym kodzie XML.If the source XML is indented, not setting the PreserveWhitespace flag in options causes the reader to ignore all of the insignificant white space in the source XML. Drzewo XML jest tworzone bez węzłów tekstowych dla nieznaczącego odstępu.The XML tree is created without any text nodes for insignificant white space.

Jeśli źródłowy kod XML nie ma wcięcia, ustawienie flagi PreserveWhitespace w options nie ma żadnego wpływu.If the source XML is not indented, setting the PreserveWhitespace flag in options has no effect. Wciąż jest zachowywany znaczący biały znak i nie ma żadnych nieznaczących białych znaków, które mogłyby spowodować utworzenie większej ilości białych węzłów tekstowych.Significant white space is still preserved, and there are no spans of insignificant white space that could cause the creation of more white space text nodes.

Aby uzyskać więcej informacji, zobacz zachowywanie białych znaków podczas ładowania lub analizowania kodu XML oraz zachowywania białych znaków podczas serializacji.For more information, see Preserving White Space while Loading or Parsing XML and Preserving White Space While Serializing.

Użyj Parse, aby utworzyć XElement z ciągu, który zawiera kod XML.Use Parse to create an XElement from a string that contains XML.

Jeśli ustawisz SetBaseUri i flagi SetLineInfo, nastąpi spadek wydajności.There is a performance penalty if you set the SetBaseUri and the SetLineInfo flags.

Podstawowy identyfikator URI i informacje o wierszu są dokładne natychmiast po załadowaniu dokumentu XML.The base URI and the line information are accurate immediately after loading the XML document. Jeśli zmodyfikujesz drzewo XML po załadowaniu dokumentu, podstawowy identyfikator URI i informacje o wierszu mogą stać się bezużyteczne.If you modify the XML tree after loading the document, the base URI and line information may become meaningless.

Funkcja ładowania LINQ to XML jest oparta na XmlReader.LINQ to XML's loading functionality is built upon XmlReader. W związku z tym można wychwycić wszystkie wyjątki, które są zgłaszane przez metody przeciążenia XmlReader.Create i metody XmlReader, które odczytują i analizują dokument.Therefore, you might catch any exceptions that are thrown by the XmlReader.Create overload methods and the XmlReader methods that read and parse the document.

Zobacz też

Load(Stream, LoadOptions)

Tworzy nowe wystąpienie XElement przy użyciu określonego strumienia, opcjonalnie zachowując biały znak, ustawiając podstawowy identyfikator URI i przechowując informacje o wierszu.Creates a new XElement instance by using the specified stream, optionally preserving white space, setting the base URI, and retaining line information.

public:
 static System::Xml::Linq::XElement ^ Load(System::IO::Stream ^ stream, System::Xml::Linq::LoadOptions options);
public static System.Xml.Linq.XElement Load (System.IO.Stream stream, System.Xml.Linq.LoadOptions options);
static member Load : System.IO.Stream * System.Xml.Linq.LoadOptions -> System.Xml.Linq.XElement

Parametry

stream
Stream

Strumień zawierający dane XML.The stream containing the XML data.

options
LoadOptions

Obiekt LoadOptions, który określa, czy mają zostać załadowane podstawowe informacje o identyfikatorze URI i wierszu.A LoadOptions object that specifies whether to load base URI and line information.

Zwraca

Obiekt XElement używany do odczytywania danych, które zawiera strumień.An XElement object used to read the data that the stream contains.

Uwagi

Funkcja ładowania LINQ to XML jest oparta na XmlReader.LINQ to XML's loading functionality is built upon XmlReader. W związku z tym można wychwycić wszystkie wyjątki, które są zgłaszane przez metody przeciążenia XmlReader.Create i metody XmlReader, które odczytują i analizują dokument.Therefore, you might catch any exceptions that are thrown by the XmlReader.Create overload methods and the XmlReader methods that read and parse the document.

Jeśli musisz zmodyfikować XmlReaderSettings, wykonaj następujące czynności:If you have to modify XmlReaderSettings, following these steps:

  1. Utwórz XmlReader, wywołując jeden z przeciążeń Create, które pobierają XmlReaderSettings jako parametr.Create an XmlReader by calling one of the Create overloads that take XmlReaderSettings as a parameter.

  2. Przekaż XmlReader do jednego z XElementLoad przeciążenia, które pobiera XmlReader jako parametr.Pass the XmlReader to one of the XElement's Load overloads that takes XmlReader as a parameter.

Load(TextReader)

Ładuje XElement z TextReader.Loads an XElement from a TextReader.

public:
 static System::Xml::Linq::XElement ^ Load(System::IO::TextReader ^ textReader);
public static System.Xml.Linq.XElement Load (System.IO.TextReader textReader);
static member Load : System.IO.TextReader -> System.Xml.Linq.XElement

Parametry

textReader
TextReader

TextReader, który ma zostać odczytany dla XElement zawartości.A TextReader that will be read for the XElement content.

Zwraca

XElement, który zawiera kod XML, który został odczytany z określonego TextReader.An XElement that contains the XML that was read from the specified TextReader.

Przykłady

Poniższy przykład ładuje element z StringReader.The following example loads an element from a StringReader.

TextReader sr = new StringReader("<Root><Child/></Root>");  
XElement xmlTree = XElement.Load(sr);  
sr.Close();  
Console.WriteLine(xmlTree);  
Dim sr As TextReader = New StringReader("<Root><Child/></Root>")  
Dim xmlTree As XElement = XElement.Load(sr)  
sr.Close()  
Console.WriteLine(xmlTree)  

Ten przykład generuje następujące wyniki:This example produces the following output:

<Root>  
  <Child />  
</Root>  

Uwagi

Ta metoda odczytuje nieprzetworzony kod XML do drzewa XML.This method reads the raw XML into the XML tree. Odrzuca wszystkie nieznaczące białe znaki w pliku.It discards all insignificant white space in the file.

Funkcja ładowania LINQ to XML jest oparta na XmlReader.LINQ to XML's loading functionality is built upon XmlReader. W związku z tym można wychwycić wszystkie wyjątki, które są zgłaszane przez metody przeciążenia XmlReader.Create i metody XmlReader, które odczytują i analizują dokument.Therefore, you might catch any exceptions that are thrown by the XmlReader.Create overload methods and the XmlReader methods that read and parse the document.

Zobacz też

Load(String)

Ładuje XElement z pliku.Loads an XElement from a file.

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

Parametry

uri
String

Ciąg identyfikatora URI odwołujący się do pliku, który ma zostać załadowany do nowego XElement.A URI string referencing the file to load into a new XElement.

Zwraca

XElement, który zawiera zawartość określonego pliku.An XElement that contains the contents of the specified file.

Przykłady

Poniższy przykład tworzy drzewo XML, zapisuje go do pliku, a następnie używa tej metody do ładowania XElement z pliku.The following example creates an XML tree, saves it to a file, and then uses this method to load the XElement from the file.

XElement xmlTree1 = new XElement("Root",  
    new XElement("Child", "content")  
);  
xmlTree1.Save("Tree.xml");  
  
XElement xmlTree2 = XElement.Load("Tree.xml");  
Console.WriteLine(xmlTree2.Name);  
Dim xmlTree1 As XElement = _   
        <Root>  
            <Child>Content</Child>  
        </Root>  
xmlTree1.Save("Tree.xml")  
  
Dim xmlTree2 As XElement = XElement.Load("Tree.xml")  
Console.WriteLine(xmlTree2.Name)  

Ten przykład generuje następujące wyniki:This example produces the following output:

Root  

Uwagi

Ta metoda odczytuje nieprzetworzony kod XML do drzewa XML.This method reads the raw XML into the XML tree. Odrzuca wszystkie nieznaczące białe znaki w pliku.It discards all insignificant white space in the file.

Funkcja ładowania LINQ to XML jest oparta na XmlReader.LINQ to XML's loading functionality is built upon XmlReader. W związku z tym można wychwycić wszystkie wyjątki, które są zgłaszane przez metody przeciążenia XmlReader.Create i metody XmlReader, które odczytują i analizują dokument.Therefore, you might catch any exceptions that are thrown by the XmlReader.Create overload methods and the XmlReader methods that read and parse the document.

Zobacz też

Load(Stream)

Tworzy nowe wystąpienie XElement przy użyciu określonego strumienia.Creates a new XElement instance by using the specified stream.

public:
 static System::Xml::Linq::XElement ^ Load(System::IO::Stream ^ stream);
public static System.Xml.Linq.XElement Load (System.IO.Stream stream);
static member Load : System.IO.Stream -> System.Xml.Linq.XElement

Parametry

stream
Stream

Strumień zawierający dane XML.The stream that contains the XML data.

Zwraca

Obiekt XElement używany do odczytywania danych zawartych w strumieniu.An XElement object used to read the data that is contained in the stream.

Uwagi

Jeśli chcesz kontrolować opcje ładowania, Użyj przeciążenia Load, które przyjmuje LoadOptions jako parametr.If you want to control load options, use the Load overload that takes LoadOptions as a parameter.

Funkcja ładowania LINQ to XML jest oparta na XmlReader.LINQ to XML's loading functionality is built upon XmlReader. W związku z tym można wychwycić wszystkie wyjątki, które są zgłaszane przez metody przeciążenia XmlReader.Create i metody XmlReader, które odczytują i analizują dokument.Therefore, you might catch any exceptions that are thrown by the XmlReader.Create overload methods and the XmlReader methods that read and parse the document.

Jeśli musisz zmodyfikować XmlReaderSettings, wykonaj następujące czynności:If you have to modify XmlReaderSettings, following these steps:

  1. Utwórz XmlReader, wywołując jeden z przeciążeń Create, które pobierają XmlReaderSettings jako parametr.Create an XmlReader by calling one of the Create overloads that take XmlReaderSettings as a parameter.

  2. Przekaż XmlReader do jednego z XElementLoad przeciążenia, które pobiera XmlReader jako parametr.Pass the XmlReader to one of the XElement's Load overloads that takes XmlReader as a parameter.

Load(XmlReader)

Ładuje XElement z XmlReader.Loads an XElement from an XmlReader.

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

Parametry

reader
XmlReader

XmlReader, który zostanie odczytany dla zawartości XElement.A XmlReader that will be read for the content of the XElement.

Zwraca

XElement, który zawiera kod XML, który został odczytany z określonego XmlReader.An XElement that contains the XML that was read from the specified XmlReader.

Przykłady

W poniższym przykładzie tworzony jest dokument modelu DOM, tworzy XmlNodeReader z dokumentu DOM, tworząc wystąpienie drzewa od czytnika.The following example creates a DOM document, creates an XmlNodeReader from the DOM document, instantiates a tree from the reader. Ten kod efektywnie kopiuje dokument DOM do drzewa LINQ to XML.This code effectively copies a DOM document into a LINQ to XML tree.

// 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();  
  
    XElement xRoot = XElement.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 XElement = XElement.Load(nodeReader)  
    Console.WriteLine(xRoot)  
End Using  

Ten przykład generuje następujące wyniki:This example produces the following output:

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

Uwagi

Tworząc XmlNodeReader z dokumentu DOM, a następnie używając XmlNodeReader do tworzenia XElement, ta metoda może być używana do tworzenia kopii dokumentu DOM w drzewie LINQ to XML.By creating an XmlNodeReader from a DOM document, and then using the XmlNodeReader to create an XElement, this method can be used to create a copy of a DOM document in a LINQ to XML tree.

Funkcja ładowania LINQ to XML jest oparta na XmlReader.LINQ to XML's loading functionality is built upon XmlReader. W związku z tym można wychwycić wszystkie wyjątki, które są zgłaszane przez metody przeciążenia XmlReader.Create i metody XmlReader, które odczytują i analizują dokument.Therefore, you might catch any exceptions that are thrown by the XmlReader.Create overload methods and the XmlReader methods that read and parse the document.

Zobacz też

Dotyczy