XDocument.Load Metod

Definition

Skapar en ny XDocument från en fil som anges av en URI, från en TextReader, eller från en XmlReader.

Överlagringar

Name Description
Load(Stream)

Skapar en ny XDocument instans med hjälp av den angivna strömmen.

Load(TextReader)

Skapar en ny XDocument från en TextReader.

Load(String)

Skapar en ny XDocument från en fil.

Load(XmlReader)

Skapar en ny XDocument från en XmlReader.

Load(Stream, LoadOptions)

Skapar en ny XDocument instans med hjälp av den angivna strömmen, om du vill bevara tomt utrymme, ange bas-URI och behålla radinformation.

Load(TextReader, LoadOptions)

Skapar en ny XDocument från en TextReader, om du vill bevara tomt utrymme, ange bas-URI och behålla radinformation.

Load(String, LoadOptions)

Skapar en ny XDocument från en fil, om du vill bevara tomt utrymme, ange bas-URI och behålla radinformation.

Load(XmlReader, LoadOptions)

Läser in en XDocument från en XmlReader, om du vill ange bas-URI:n och behålla radinformation.

Kommentarer

Med hjälp av en av överlagringarna för den här metoden kan du läsa in en XDocument från en fil, en TextReader, eller en XmlReader.

Om du vill skapa en XDocument från en sträng som innehåller XML använder du Parse.

Load(Stream)

Källa:
XDocument.cs
Källa:
XDocument.cs
Källa:
XDocument.cs
Källa:
XDocument.cs
Källa:
XDocument.cs

Skapar en ny XDocument instans med hjälp av den angivna strömmen.

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

Parametrar

stream
Stream

Dataströmmen som innehåller XML-data.

Returer

Ett XDocument objekt som läser data som finns i dataströmmen.

Kommentarer

Om du vill styra inläsningsalternativen använder du den Load överlagring som tar LoadOptions som parameter.

Inläsningsfunktionerna i LINQ till XML bygger på XmlReader. Därför kan du fånga eventuella undantag som genereras av överlagringsmetoderna XmlReader.Create och de XmlReader metoder som läser och parsar dokumentet.

Om du måste ändra XmlReaderSettingsföljer du dessa steg:

  1. Skapa en XmlReader genom att anropa en av de Create överlagringar som tar XmlReaderSettings som en parameter.

  2. XmlReader Skicka till en av Load överlagringarna av XDocument som tar XmlReader som en parameter.

Gäller för

Load(TextReader)

Källa:
XDocument.cs
Källa:
XDocument.cs
Källa:
XDocument.cs
Källa:
XDocument.cs
Källa:
XDocument.cs

Skapar en ny XDocument från en 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

Parametrar

textReader
TextReader

En TextReader som innehåller innehållet för XDocument.

Returer

En XDocument som innehåller innehållet i den angivna TextReader.

Exempel

I följande exempel skapas ett dokument från en 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)

Det här exemplet genererar följande utdata:

<Root>Content</Root>

Kommentarer

LINQ till XML:s inläsningsfunktioner bygger på XmlReader. Därför kan du fånga eventuella undantag som genereras av överlagringsmetoderna XmlReader.Create och de XmlReader metoder som läser och parsar dokumentet.

Se även

Gäller för

Load(String)

Källa:
XDocument.cs
Källa:
XDocument.cs
Källa:
XDocument.cs
Källa:
XDocument.cs
Källa:
XDocument.cs

Skapar en ny XDocument från en fil.

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

Parametrar

uri
String

En URI-sträng som refererar till filen som ska läsas in i en ny XDocument.

Returer

En XDocument som innehåller innehållet i den angivna filen.

Exempel

I följande exempel visas hur du läser in en XDocument från en fil.

I det här exemplet används följande XML-dokument:

Exempel på XML-fil: Typisk inköpsorder (LINQ till XML)

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

Det här exemplet genererar följande utdata:

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

Kommentarer

Den här metoden använder en underliggande XmlReader för att läsa XML-koden i ett XML-träd.

Använd Parse för att skapa en XDocument från en sträng som innehåller XML.

LINQ till XML:s inläsningsfunktioner bygger på XmlReader. Därför kan du fånga eventuella undantag som genereras av överlagringsmetoderna XmlReader.Create och de XmlReader metoder som läser och parsar dokumentet.

Se även

Gäller för

Load(XmlReader)

Källa:
XDocument.cs
Källa:
XDocument.cs
Källa:
XDocument.cs
Källa:
XDocument.cs
Källa:
XDocument.cs

Skapar en ny XDocument från en 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

Parametrar

reader
XmlReader

En XmlReader som innehåller innehållet för XDocument.

Returer

En XDocument som innehåller innehållet i den angivna XmlReader.

Exempel

Följande exempel skapar ett DOM-dokument, skapar ett XmlNodeReader från DOM-dokumentet, skapar ett XDocument med hjälp av 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

Det här exemplet genererar följande utdata:

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

Kommentarer

En möjlig användning för den här metoden är att skapa en kopia av ett DOM-dokument i ett LINQ till XML-träd. För att göra detta skapar du en XmlNodeReader från ett DOM-dokument och använder XmlNodeReader sedan för att skapa en XDocument.

LINQ till XML:s inläsningsfunktioner bygger på XmlReader. Därför kan du fånga eventuella undantag som genereras av överlagringsmetoderna XmlReader.Create och de XmlReader metoder som läser och parsar dokumentet.

Se även

Gäller för

Load(Stream, LoadOptions)

Källa:
XDocument.cs
Källa:
XDocument.cs
Källa:
XDocument.cs
Källa:
XDocument.cs
Källa:
XDocument.cs

Skapar en ny XDocument instans med hjälp av den angivna strömmen, om du vill bevara tomt utrymme, ange bas-URI och behålla radinformation.

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

Parametrar

stream
Stream

Strömmen som innehåller XML-data.

options
LoadOptions

A LoadOptions som anger om bas-URI och radinformation ska läsas in.

Returer

Ett XDocument objekt som läser data som finns i dataströmmen.

Kommentarer

Inläsningsfunktionerna i LINQ till XML bygger på XmlReader. Därför kan du fånga eventuella undantag som genereras av överlagringsmetoderna XmlReader.Create och de XmlReader metoder som läser och parsar dokumentet.

Om du måste ändra XmlReaderSettingsföljer du dessa steg:

  1. Skapa en XmlReader genom att anropa en av de Create överlagringar som tar XmlReaderSettings som en parameter.

  2. XmlReader Skicka till en av Load överlagringarna av XDocument som tar XmlReader som en parameter.

Gäller för

Load(TextReader, LoadOptions)

Källa:
XDocument.cs
Källa:
XDocument.cs
Källa:
XDocument.cs
Källa:
XDocument.cs
Källa:
XDocument.cs

Skapar en ny XDocument från en TextReader, om du vill bevara tomt utrymme, ange bas-URI och behålla radinformation.

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

Parametrar

textReader
TextReader

En TextReader som innehåller innehållet för XDocument.

options
LoadOptions

A LoadOptions som anger beteende för tomt utrymme och om bas-URI och radinformation ska läsas in.

Returer

En XDocument som innehåller xml-koden som lästes från den angivna TextReader.

Exempel

I följande exempel skapas ett dokument från en 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)

Det här exemplet genererar följande utdata:

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

Kommentarer

Om käll-XML:en är indragen gör inställningen PreserveWhitespace av flaggan i options att läsaren läser allt tomt utrymme i käll-XML:en. Noder av typen XText skapas för både betydande och obetydligt tomt utrymme.

Om käll-XML:en är indragen, gör inte inställningen PreserveWhitespace av flaggan i options att läsaren ignorerar allt obetydligt tomt utrymme i käll-XML:en. XML-trädet skapas utan textnoder för obetydligt tomt utrymme.

Om käll-XML inte är indraget har det ingen effekt att ange PreserveWhitespace flaggan i options . Betydande tomt utrymme bevaras fortfarande, och det finns inga intervall med obetydligt tomt utrymme som kan orsaka skapandet av fler blankstegstextnoder.

Mer information finns i Bevara tomt utrymme vid inläsning eller parsning av XML och Bevara tomt utrymme vid serialisering.

Använd Parse för att skapa en XElement från en sträng som innehåller XML.

Inställningen SetBaseUri är inte giltig vid inläsning från en TextReader.

Det finns ett prestandastraff om du anger SetLineInfo flaggan.

Radinformationen är korrekt omedelbart efter att XML-dokumentet har lästs in. Om du ändrar XML-trädet när du har läst in dokumentet kan radinformationen bli meningslös.

LINQ till XML:s inläsningsfunktioner bygger på XmlReader. Därför kan du fånga eventuella undantag som genereras av överlagringsmetoderna XmlReader.Create och de XmlReader metoder som läser och parsar dokumentet.

Se även

Gäller för

Load(String, LoadOptions)

Källa:
XDocument.cs
Källa:
XDocument.cs
Källa:
XDocument.cs
Källa:
XDocument.cs
Källa:
XDocument.cs

Skapar en ny XDocument från en fil, om du vill bevara tomt utrymme, ange bas-URI och behålla radinformation.

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

Parametrar

uri
String

En URI-sträng som refererar till filen som ska läsas in i en ny XDocument.

options
LoadOptions

A LoadOptions som anger beteende för tomt utrymme och om bas-URI och radinformation ska läsas in.

Returer

En XDocument som innehåller innehållet i den angivna filen.

Exempel

I följande exempel visas hur du läser in en XDocument från en fil.

I det här exemplet används följande XML-dokument:

Exempel på XML-fil: Typisk inköpsorder (LINQ till 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())

Det här exemplet genererar följande utdata:

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

Kommentarer

Om käll-XML:en är indragen gör inställningen PreserveWhitespace av flaggan i options att läsaren läser allt tomt utrymme i käll-XML:en. Noder av typen XText skapas för både betydande och obetydligt tomt utrymme.

Om käll-XML:en är indragen, gör inte inställningen PreserveWhitespace av flaggan i options att läsaren ignorerar allt obetydligt tomt utrymme i käll-XML:en. XML-trädet skapas utan textnoder för obetydligt tomt utrymme.

Om käll-XML inte är indraget har det ingen effekt att ange PreserveWhitespace flaggan i options . Betydande tomt utrymme bevaras fortfarande, och det finns inga intervall med obetydligt tomt utrymme som kan orsaka skapandet av fler blankstegstextnoder.

Mer information finns i Bevara tomt utrymme vid inläsning eller parsning av XML och Bevara tomt utrymme vid serialisering.

Använd Parse för att skapa en XDocument från en sträng som innehåller XML.

Det finns ett prestandastraff om du anger flaggorna SetBaseUriSetLineInfo och .

Bas-URI:n och radinformationen är korrekta omedelbart efter att XML-dokumentet har lästs in. Om du ändrar XML-trädet när du har läst in dokumentet kan bas-URI:n och radinformationen bli meningslösa.

LINQ till XML:s inläsningsfunktioner bygger på XmlReader. Därför kan du fånga eventuella undantag som genereras av överlagringsmetoderna XmlReader.Create och de XmlReader metoder som läser och parsar dokumentet.

Se även

Gäller för

Load(XmlReader, LoadOptions)

Källa:
XDocument.cs
Källa:
XDocument.cs
Källa:
XDocument.cs
Källa:
XDocument.cs
Källa:
XDocument.cs

Läser in en XDocument från en XmlReader, om du vill ange bas-URI:n och behålla radinformation.

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

Parametrar

reader
XmlReader

En XmlReader som kommer att läsas för innehållet i XDocument.

options
LoadOptions

A LoadOptions som anger om bas-URI och radinformation ska läsas in.

Returer

En XDocument som innehåller xml-koden som lästes från den angivna XmlReader.

Exempel

I följande exempel läses den radinformation som läses in från XmlReader. Radinformationen skrivs sedan ut.

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

Det här exemplet genererar följande utdata:

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

Kommentarer

Genom att skapa ett XmlNodeReader från ett DOM-dokument och sedan använda XmlNodeReader för att skapa en XElement, kan den här metoden användas för att skapa en kopia av ett DOM-dokument i ett LINQ till XML-träd.

Använd Parse för att skapa en XDocument från en sträng som innehåller XML.

Inställningen PreserveWhitespace är inte giltig vid inläsning från en XmlReader. XmlReader Kommer att konfigureras för att antingen läsa tomt utrymme eller inte. LINQ till XML-trädet fylls i med de blankstegsnoder som läsaren visar. Det här är beteendet oavsett om PreserveWhitespace det har angetts eller inte.

XmlReader Kan ha en giltig bas-URI eller inte. Om du anger SetBaseUrianges bas-URI:n i XML-trädet från den bas-URI som rapporteras av XmlReader.

Kan XmlReader ha en giltig radinformation eller inte. Om du anger SetLineInfoanges radinformationen i XML-trädet från den radinformation som rapporteras av XmlReader.

Det finns ett prestandastraff om du anger SetLineInfo flaggan.

Radinformationen är korrekt omedelbart efter att XML-dokumentet har lästs in. Om du ändrar XML-trädet när du har läst in dokumentet kan radinformationen bli meningslös.

LINQ till XML:s inläsningsfunktioner bygger på XmlReader. Därför kan du fånga eventuella undantag som genereras av överlagringsmetoderna XmlReader.Create och de XmlReader metoder som läser och parsar dokumentet.

Se även

Gäller för