XDocument.Load Método

Definição

Cria um novo XDocument de um arquivo especificado por um URI com base em um TextReader ou um XmlReader.Creates a new XDocument from a file specified by a URI, from an TextReader, or from an XmlReader.

Sobrecargas

Load(Stream)

Cria uma nova instância XDocument usando o fluxo especificado.Creates a new XDocument instance by using the specified stream.

Load(TextReader)

Cria um novo XDocument com base em um TextReader.Creates a new XDocument from a TextReader.

Load(String)

Cria um novo XDocument com base em um arquivo.Creates a new XDocument from a file.

Load(XmlReader)

Cria um novo XDocument com base em um XmlReader.Creates a new XDocument from an XmlReader.

Load(Stream, LoadOptions)

Cria uma nova instância de XDocument usando o fluxo especificado, com a opção de preservar espaços em branco, definir o URI base e reter informações de linha.Creates a new XDocument instance by using the specified stream, optionally preserving white space, setting the base URI, and retaining line information.

Load(TextReader, LoadOptions)

Cria um novo XDocument de um TextReader, opcionalmente preservando espaços em branco, configurando o URI base e retendo informações de linha.Creates a new XDocument from a TextReader, optionally preserving white space, setting the base URI, and retaining line information.

Load(String, LoadOptions)

Cria um novo XDocument com base em um arquivo, opcionalmente, preservando os espaços em branco, definindo o URI base e retendo as informações de linha.Creates a new XDocument from a file, optionally preserving white space, setting the base URI, and retaining line information.

Load(XmlReader, LoadOptions)

Carrega um XDocument de um XmlReader, configurando opcionalmente o URI de base e retendo informações de linha.Loads an XDocument from an XmlReader, optionally setting the base URI, and retaining line information.

Comentários

Usando uma das sobrecargas desse método, você pode carregar um XDocument de um arquivo, um TextReader ou um XmlReader .Using one of the overloads of this method, you can load an XDocument from a file, a TextReader, or an XmlReader.

Para criar um XDocument de uma cadeia de caracteres que contém XML, use Parse .To create an XDocument from a string that contains XML, use Parse.

Load(Stream)

Cria uma nova instância XDocument usando o fluxo especificado.Creates a new XDocument instance by using the specified stream.

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

Parâmetros

stream
Stream

O fluxo que contém os dados XML.The stream that contains the XML data.

Retornos

XDocument

Um objeto XDocument que lê os dados contidos em um fluxo.An XDocument object that reads the data that is contained in the stream.

Comentários

Se você quiser controlar as opções de carregamento, use a Load sobrecarga que o usa LoadOptions como um parâmetro.If you want to control load options, use the Load overload that takes LoadOptions as a parameter.

A funcionalidade de carregamento do LINQ to XML é criada sobre o XmlReader .The loading functionality of LINQ to XML is built upon XmlReader. Portanto, você pode capturar todas as exceções que são geradas pelos XmlReader.Create métodos de sobrecarga e os XmlReader métodos que lêem e analisam o documento.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.

Se você precisar modificar XmlReaderSettings , siga estas etapas:If you have to modify XmlReaderSettings, follow these steps:

  1. Crie um XmlReader chamando uma das Create sobrecargas que usam XmlReaderSettings como um parâmetro.Create an XmlReader by calling one of the Create overloads that take XmlReaderSettings as a parameter.

  2. Passe o XmlReader para um dos Load sobrecarregamentos que o XDocument usa XmlReader como um parâmetro.Pass the XmlReader to one of the Load overloads of XDocument that takes XmlReader as a parameter.

Aplica-se a

Load(TextReader)

Cria um novo XDocument com base em um TextReader.Creates a new XDocument from a 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

Parâmetros

textReader
TextReader

Um TextReader que contém o conteúdo do XDocument.A TextReader that contains the content for the XDocument.

Retornos

XDocument

Um XDocument que contém o conteúdo do TextReader especificado.An XDocument that contains the contents of the specified TextReader.

Exemplos

O exemplo a seguir cria um documento a partir de um StringReader .The following example creates a document from a 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)  

Esse exemplo gera a saída a seguir:This example produces the following output:

<Root>Content</Root>  

Comentários

A funcionalidade de carregamento do LINQ to XML foi criada sobre o XmlReader .LINQ to XML's loading functionality is built upon XmlReader. Portanto, você pode capturar todas as exceções que são geradas pelos XmlReader.Create métodos de sobrecarga e os XmlReader métodos que lêem e analisam o documento.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.

Confira também

Aplica-se a

Load(String)

Cria um novo XDocument com base em um arquivo.Creates a new XDocument from a file.

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

Parâmetros

uri
String

Uma cadeia de caracteres do URI que faz referência ao arquivo a ser carregado em um novo XDocument.A URI string that references the file to load into a new XDocument.

Retornos

XDocument

Um XDocument que contém o conteúdo do arquivo especificado.An XDocument that contains the contents of the specified file.

Exemplos

O exemplo a seguir mostra como carregar um XDocument de um arquivo.The following example shows how to load an XDocument from a file.

Este exemplo usa o seguinte documento XML:This example uses the following XML document:

Arquivo XML de exemplo: Ordem de compra típica (LINQ to XML)Sample XML File: Typical Purchase Order (LINQ to XML)

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

Esse exemplo gera a saída a seguir:This example produces the following output:

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

Comentários

Esse método usa um subjacente XmlReader para ler o XML em uma árvore XML.This method uses an underlying XmlReader to read the XML into an XML tree.

Use Parse para criar um XDocument de uma cadeia de caracteres que contém XML.Use Parse to create an XDocument from a string that contains XML.

A funcionalidade de carregamento do LINQ to XML foi criada sobre o XmlReader .LINQ to XML's loading functionality is built upon XmlReader. Portanto, você pode capturar todas as exceções que são geradas pelos XmlReader.Create métodos de sobrecarga e os XmlReader métodos que lêem e analisam o documento.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.

Confira também

Aplica-se a

Load(XmlReader)

Cria um novo XDocument com base em um XmlReader.Creates a new XDocument from an 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

Parâmetros

reader
XmlReader

Um XmlReader que contém o conteúdo do XDocument.A XmlReader that contains the content for the XDocument.

Retornos

XDocument

Um XDocument que contém o conteúdo do XmlReader especificado.An XDocument that contains the contents of the specified XmlReader.

Exemplos

O exemplo a seguir cria um documento DOM, cria um XmlNodeReader do documento DOM, cria um XDocument usando o XmlNodeReader .The following example creates a DOM document, creates an XmlNodeReader from the DOM document, creates an XDocument using the 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  

Esse exemplo gera a saída a seguir:This example produces the following output:

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

Comentários

Um possível uso para esse método é criar uma cópia de um documento DOM em uma árvore de LINQ to XML.One possible use for this method is to create a copy of a DOM document in a LINQ to XML tree. Para fazer isso, você cria um XmlNodeReader de um documento DOM e, em seguida, usa o XmlNodeReader para criar um XDocument .To do this, you create an XmlNodeReader from a DOM document, and then use the XmlNodeReader to create an XDocument.

A funcionalidade de carregamento do LINQ to XML foi criada sobre o XmlReader .LINQ to XML's loading functionality is built upon XmlReader. Portanto, você pode capturar todas as exceções que são geradas pelos XmlReader.Create métodos de sobrecarga e os XmlReader métodos que lêem e analisam o documento.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.

Confira também

Aplica-se a

Load(Stream, LoadOptions)

Cria uma nova instância de XDocument usando o fluxo especificado, com a opção de preservar espaços em branco, definir o URI base e reter informações de linha.Creates a new XDocument instance by using the specified stream, optionally preserving white space, setting the base URI, and retaining line information.

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

Parâmetros

stream
Stream

O fluxo que contém os dados XML.The stream containing the XML data.

options
LoadOptions

Um LoadOptions que especifica se informações de linha e URI base devem ser carregadas.A LoadOptions that specifies whether to load base URI and line information.

Retornos

XDocument

Um objeto XDocument que lê os dados contidos em um fluxo.An XDocument object that reads the data that is contained in the stream.

Comentários

A funcionalidade de carregamento do LINQ to XML é criada sobre o XmlReader .The loading functionality of LINQ to XML is built upon XmlReader. Portanto, você pode capturar todas as exceções que são geradas pelos XmlReader.Create métodos de sobrecarga e os XmlReader métodos que lêem e analisam o documento.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.

Se você precisar modificar XmlReaderSettings , siga estas etapas:If you have to modify XmlReaderSettings, follow these steps:

  1. Crie um XmlReader chamando uma das Create sobrecargas que XmlReaderSettings o usa como um parâmetro.Create an XmlReader by calling one of the Create overloads that takes XmlReaderSettings as a parameter.

  2. Passe o XmlReader para um dos Load sobrecarregamentos que o XDocument usa XmlReader como um parâmetro.Pass the XmlReader to one of the Load overloads of XDocument that takes XmlReader as a parameter.

Aplica-se a

Load(TextReader, LoadOptions)

Cria um novo XDocument de um TextReader, opcionalmente preservando espaços em branco, configurando o URI base e retendo informações de linha.Creates a new XDocument from a TextReader, optionally preserving white space, setting the base URI, and retaining line information.

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

Parâmetros

textReader
TextReader

Um TextReader que contém o conteúdo do XDocument.A TextReader that contains the content for the XDocument.

options
LoadOptions

LoadOptions que especificam o comportamento de espaço em branco e se serão carregadas as informações de linha e o URI base.A LoadOptions that specifies white space behavior, and whether to load base URI and line information.

Retornos

XDocument

Um XDocument que contém o XML que foi lido do TextReader especificado.An XDocument that contains the XML that was read from the specified TextReader.

Exemplos

O exemplo a seguir cria um documento a partir de um StringReader .The following example creates a document from a 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)  

Esse exemplo gera a saída a seguir:This example produces the following output:

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

Comentários

Se o XML de origem for recuado, a definição do PreserveWhitespace sinalizador no options fará com que o leitor Leia todo o espaço em branco no XML de origem.If the source XML is indented, setting the PreserveWhitespace flag in options causes the reader to read all white space in the source XML. Os nós do tipo XText são criados para um espaço em branco significativo e insignificante.Nodes of type XText are created for both significant and insignificant white space.

Se o XML de origem for recuado, não definir o PreserveWhitespace sinalizador no options fará com que o leitor ignore todo o espaço em branco insignificante no XML de origem.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. A árvore XML é criada sem nenhum nó de texto para um espaço em branco insignificante.The XML tree is created without any text nodes for insignificant white space.

Se o XML de origem não for recuado, a definição do PreserveWhitespace sinalizador em options não terá nenhum efeito.If the source XML is not indented, setting the PreserveWhitespace flag in options has no effect. Um espaço em branco significativo ainda é preservado e não há intervalos de espaço em branco insignificantes que poderiam causar a criação de mais nós de texto de espaço em branco.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.

Para obter mais informações, consulte Preservar espaço em branco ao carregar ou analisar XML e preservar o espaço em branco durante a serialização.For more information, see Preserve white space while loading or parsing XML and Preserve white space while serializing.

Use Parse para criar um XElement de uma cadeia de caracteres que contém XML.Use Parse to create an XElement from a string that contains XML.

SetBaseUriA configuração não é válida ao carregar de um TextReader .Setting SetBaseUri is not valid when loading from a TextReader.

Haverá uma penalidade de desempenho se você definir o SetLineInfo sinalizador.There is a performance penalty if you set the SetLineInfo flag.

As informações de linha são precisas imediatamente após o carregamento do documento XML.The line information is accurate immediately after loading the XML document. Se você modificar a árvore XML depois de carregar o documento, as informações de linha poderão se tornar sem sentido.If you modify the XML tree after loading the document, the line information may become meaningless.

A funcionalidade de carregamento do LINQ to XML foi criada sobre o XmlReader .LINQ to XML's loading functionality is built upon XmlReader. Portanto, você pode capturar todas as exceções que são geradas pelos XmlReader.Create métodos de sobrecarga e os XmlReader métodos que lêem e analisam o documento.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.

Confira também

Aplica-se a

Load(String, LoadOptions)

Cria um novo XDocument com base em um arquivo, opcionalmente, preservando os espaços em branco, definindo o URI base e retendo as informações de linha.Creates a new XDocument from a file, optionally preserving white space, setting the base URI, and retaining line information.

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

Parâmetros

uri
String

Uma cadeia de caracteres do URI que faz referência ao arquivo a ser carregado em um novo XDocument.A URI string that references the file to load into a new XDocument.

options
LoadOptions

LoadOptions que especificam o comportamento de espaço em branco e se serão carregadas as informações de linha e o URI base.A LoadOptions that specifies white space behavior, and whether to load base URI and line information.

Retornos

XDocument

Um XDocument que contém o conteúdo do arquivo especificado.An XDocument that contains the contents of the specified file.

Exemplos

O exemplo a seguir mostra como carregar um XDocument de um arquivo.The following example shows how to load an XDocument from a file.

Este exemplo usa o seguinte documento XML:This example uses the following XML document:

Arquivo XML de exemplo: Ordem de compra típica (LINQ to XML)Sample XML File: Typical Purchase Order (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())  

Esse exemplo gera a saída a seguir:This example produces the following output:

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

Comentários

Se o XML de origem for recuado, a definição do PreserveWhitespace sinalizador no options fará com que o leitor Leia todo o espaço em branco no XML de origem.If the source XML is indented, setting the PreserveWhitespace flag in options causes the reader to read all white space in the source XML. Os nós do tipo XText são criados para um espaço em branco significativo e insignificante.Nodes of type XText are created for both significant and insignificant white space.

Se o XML de origem for recuado, não definir o PreserveWhitespace sinalizador no options fará com que o leitor ignore todo o espaço em branco insignificante no XML de origem.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. A árvore XML é criada sem nenhum nó de texto para um espaço em branco insignificante.The XML tree is created without any text nodes for insignificant white space.

Se o XML de origem não for recuado, a definição do PreserveWhitespace sinalizador em options não terá nenhum efeito.If the source XML is not indented, setting the PreserveWhitespace flag in options has no effect. Um espaço em branco significativo ainda é preservado e não há intervalos de espaço em branco insignificantes que poderiam causar a criação de mais nós de texto de espaço em branco.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.

Para obter mais informações, consulte Preservar espaço em branco ao carregar ou analisar XML e preservar o espaço em branco durante a serialização.For more information, see Preserve white space while loading or parsing XML and Preserve white space while serializing.

Use Parse para criar um XDocument de uma cadeia de caracteres que contém XML.Use Parse to create an XDocument from a string that contains XML.

Haverá uma penalidade de desempenho se você definir o SetBaseUri e os SetLineInfo sinalizadores.There is a performance penalty if you set the SetBaseUri and the SetLineInfo flags.

O URI de base e as informações de linha são precisos imediatamente após o carregamento do documento XML.The base URI and the line information are accurate immediately after loading the XML document. Se você modificar a árvore XML depois de carregar o documento, o URI de base e as informações de linha poderão se tornar sem sentido.If you modify the XML tree after loading the document, the base URI and line information may become meaningless.

A funcionalidade de carregamento do LINQ to XML foi criada sobre o XmlReader .LINQ to XML's loading functionality is built upon XmlReader. Portanto, você pode capturar todas as exceções que são geradas pelos XmlReader.Create métodos de sobrecarga e os XmlReader métodos que lêem e analisam o documento.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.

Confira também

Aplica-se a

Load(XmlReader, LoadOptions)

Carrega um XDocument de um XmlReader, configurando opcionalmente o URI de base e retendo informações de linha.Loads an XDocument from an XmlReader, optionally setting the base URI, and retaining line information.

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

Parâmetros

reader
XmlReader

Um XmlReader que será lido para o conteúdo do XDocument.A XmlReader that will be read for the content of the XDocument.

options
LoadOptions

Um LoadOptions que especifica se informações de linha e URI base devem ser carregadas.A LoadOptions that specifies whether to load base URI and line information.

Retornos

XDocument

Um XDocument que contém o XML que foi lido do XmlReader especificado.An XDocument that contains the XML that was read from the specified XmlReader.

Exemplos

O exemplo a seguir carrega as informações de linha que ele carrega do XmlReader .The following example loads the line information that it loads from the XmlReader. Em seguida, ele imprime as informações de linha.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();  

    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  

Esse exemplo gera a saída a seguir:This example produces the following output:

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

Comentários

Ao criar um XmlNodeReader de um documento DOM e, em seguida, usar o XmlNodeReader para criar um XElement , esse método pode ser usado para criar uma cópia de um documento DOM em uma árvore de 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.

Use Parse para criar um XDocument de uma cadeia de caracteres que contém XML.Use Parse to create an XDocument from a string that contains XML.

PreserveWhitespaceA configuração não é válida ao carregar de um XmlReader .Setting PreserveWhitespace is not valid when loading from a XmlReader. O XmlReader será configurado para ler espaço em branco ou não.The XmlReader will be configured to either read whitespace or not. A árvore de LINQ to XML será populada com os nós de espaço em branco que o leitor superfícies.The LINQ to XML tree will be populated with the whitespace nodes that the reader surfaces. Esse será o comportamento, independentemente de PreserveWhitespace ser definido ou não.This will be the behavior regardless of whether PreserveWhitespace is set or not.

O XmlReader pode ter um URI base válido ou não.The XmlReader may have a valid base URI or not. Se você definir SetBaseUri , o URI de base será definido na árvore XML a partir do URI de base que é relatado pelo 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.

O XmlReader pode ter uma informação de linha válida ou não.The XmlReader may have a valid line information or not. Se você definir SetLineInfo , as informações de linha serão definidas na árvore XML a partir das informações de linha relatadas pelo 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.

Haverá uma penalidade de desempenho se você definir o SetLineInfo sinalizador.There is a performance penalty if you set the SetLineInfo flag.

As informações de linha são precisas imediatamente após o carregamento do documento XML.The line information is accurate immediately after loading the XML document. Se você modificar a árvore XML depois de carregar o documento, as informações de linha poderão se tornar sem sentido.If you modify the XML tree after loading the document, the line information may become meaningless.

A funcionalidade de carregamento do LINQ to XML foi criada sobre o XmlReader .LINQ to XML's loading functionality is built upon XmlReader. Portanto, você pode capturar todas as exceções que são geradas pelos XmlReader.Create métodos de sobrecarga e os XmlReader métodos que lêem e analisam o documento.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.

Confira também

Aplica-se a