XDocument.Load Método

Definición

Crea un nuevo XDocument a partir de un archivo especificado por un URI, de un TextReader, o de un XmlReader.Creates a new XDocument from a file specified by a URI, from an TextReader, or from an XmlReader.

Sobrecargas

Load(Stream)

Crea una nueva instancia de XDocument usando la secuencia especificada.Creates a new XDocument instance by using the specified stream.

Load(TextReader)

Crea una nueva clase de XDocument a partir de TextReader.Creates a new XDocument from a TextReader.

Load(String)

Crea un nuevo XDocument a partir de un archivo.Creates a new XDocument from a file.

Load(XmlReader)

Crea un nuevo XDocument a partir de un XmlReader.Creates a new XDocument from an XmlReader.

Load(Stream, LoadOptions)

Crea una nueva instancia de XDocument usando la secuencia especificada y, de forma opcional, conservando el espacio en blanco, estableciendo el identificador URI base y conservando la información de línea.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)

Crea un nuevo XDocument a partir de un TextReader y, de manera opcional, conserva el espacio en blanco, establece el URI base y retiene la información de línea.Creates a new XDocument from a TextReader, optionally preserving white space, setting the base URI, and retaining line information.

Load(String, LoadOptions)

Crea un nuevo XDocument a partir de un archivo y, de manera opcional, conserva el espacio en blanco, establece el URI base y retiene la información de línea.Creates a new XDocument from a file, optionally preserving white space, setting the base URI, and retaining line information.

Load(XmlReader, LoadOptions)

Carga un XDocument desde un XmlReader y, de manera opcional, se establece el URI base y se retiene la información de línea.Loads an XDocument from an XmlReader, optionally setting the base URI, and retaining line information.

Comentarios

Mediante una de las sobrecargas de este método, puede cargar una XDocument desde un archivo, un TextReadero una XmlReader.Using one of the overloads of this method, you can load an XDocument from a file, a TextReader, or an XmlReader.

Para crear una XDocument a partir de una cadena que contiene XML, utilice Parse.To create an XDocument from a string that contains XML, use Parse.

Load(Stream)

Crea una nueva instancia de XDocument usando la secuencia especificada.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

Flujo que contiene los datos XML.The stream that contains the XML data.

Devoluciones

Objeto XDocument que lee los datos contenidos en la secuencia.An XDocument object that reads the data that is contained in the stream.

Comentarios

Si desea controlar las opciones de carga, use la Load sobrecarga que toma LoadOptions como parámetro.If you want to control load options, use the Load overload that takes LoadOptions as a parameter.

La funcionalidad de carga de LINQ to XML se basa en XmlReader.The loading functionality of LINQ to XML is built upon XmlReader. Por lo tanto, puede detectar cualquier excepción que produzcan los métodos de sobrecarga XmlReader.Create y los XmlReader métodos que leen y analizan el 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.

Si tiene que modificar XmlReaderSettings, siga estos pasos:If you have to modify XmlReaderSettings, follow these steps:

  1. Cree una XmlReader llamando a una de las sobrecargas de Create que toman XmlReaderSettings como parámetro.Create an XmlReader by calling one of the Create overloads that take XmlReaderSettings as a parameter.

  2. Pase el XmlReader a una de las sobrecargas de Load de XDocument que toma XmlReader como parámetro.Pass the XmlReader to one of the Load overloads of XDocument that takes XmlReader as a parameter.

Load(TextReader)

Crea una nueva clase de XDocument a partir de 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

Objeto TextReader que incluye el contenido del XDocument.A TextReader that contains the content for the XDocument.

Devoluciones

XDocument con el contenido del TextReader especificado.An XDocument that contains the contents of the specified TextReader.

Ejemplos

En el ejemplo siguiente se crea un documento a partir de una 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)  

En este ejemplo se produce la siguiente salida:This example produces the following output:

<Root>Content</Root>  

Comentarios

La funcionalidad de carga de LINQ to XML se basa en XmlReader.LINQ to XML's loading functionality is built upon XmlReader. Por lo tanto, puede detectar cualquier excepción que produzcan los métodos de sobrecarga XmlReader.Create y los XmlReader métodos que leen y analizan el 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.

Consulte también:

Load(String)

Crea un nuevo XDocument a partir de un archivo.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

Cadena URI que hace referencia al archivo que se va a cargar en un nuevo XDocument.A URI string that references the file to load into a new XDocument.

Devoluciones

XDocument con el contenido del archivo especificado.An XDocument that contains the contents of the specified file.

Ejemplos

En el ejemplo siguiente se muestra cómo cargar una XDocument desde un archivo.The following example shows how to load an XDocument from a file.

Este ejemplo utiliza el siguiente documento XML:This example uses the following XML document:

Archivo XML de ejemplo: Pedido de compra común (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)  

En este ejemplo se produce la siguiente salida: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>  

Comentarios

Este método usa un XmlReader subyacente para leer el XML en un árbol XML.This method uses an underlying XmlReader to read the XML into an XML tree.

Utilice Parse para crear una XDocument a partir de una cadena que contiene XML.Use Parse to create an XDocument from a string that contains XML.

La funcionalidad de carga de LINQ to XML se basa en XmlReader.LINQ to XML's loading functionality is built upon XmlReader. Por lo tanto, puede detectar cualquier excepción que produzcan los métodos de sobrecarga XmlReader.Create y los XmlReader métodos que leen y analizan el 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.

Consulte también:

Load(XmlReader)

Crea un nuevo XDocument a partir de un 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

Objeto XmlReader que incluye el contenido del XDocument.A XmlReader that contains the content for the XDocument.

Devoluciones

XDocument con el contenido del XmlReader especificado.An XDocument that contains the contents of the specified XmlReader.

Ejemplos

En el ejemplo siguiente se crea un documento DOM, se crea un XmlNodeReader a partir del documento DOM, se crea un XDocument con el 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  

En este ejemplo se produce la siguiente salida:This example produces the following output:

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

Comentarios

Un uso posible para este método es crear una copia de un documento DOM en un árbol 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 ello, cree una XmlNodeReader a partir de un documento DOM y, a continuación, use el XmlNodeReader para crear una XDocument.To do this, you create an XmlNodeReader from a DOM document, and then use the XmlNodeReader to create an XDocument.

La funcionalidad de carga de LINQ to XML se basa en XmlReader.LINQ to XML's loading functionality is built upon XmlReader. Por lo tanto, puede detectar cualquier excepción que produzcan los métodos de sobrecarga XmlReader.Create y los XmlReader métodos que leen y analizan el 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.

Consulte también:

Load(Stream, LoadOptions)

Crea una nueva instancia de XDocument usando la secuencia especificada y, de forma opcional, conservando el espacio en blanco, estableciendo el identificador URI base y conservando la información de línea.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

Flujo que contiene los datos XML.The stream containing the XML data.

options
LoadOptions

LoadOptions que especifica si se va a cargar el URI base y la información de la línea.A LoadOptions that specifies whether to load base URI and line information.

Devoluciones

Objeto XDocument que lee los datos contenidos en la secuencia.An XDocument object that reads the data that is contained in the stream.

Comentarios

La funcionalidad de carga de LINQ to XML se basa en XmlReader.The loading functionality of LINQ to XML is built upon XmlReader. Por lo tanto, puede detectar cualquier excepción que produzcan los métodos de sobrecarga XmlReader.Create y los XmlReader métodos que leen y analizan el 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.

Si tiene que modificar XmlReaderSettings, siga estos pasos:If you have to modify XmlReaderSettings, follow these steps:

  1. Cree una XmlReader llamando a una de las sobrecargas de Create que toma XmlReaderSettings como parámetro.Create an XmlReader by calling one of the Create overloads that takes XmlReaderSettings as a parameter.

  2. Pase el XmlReader a una de las sobrecargas de Load de XDocument que toma XmlReader como parámetro.Pass the XmlReader to one of the Load overloads of XDocument that takes XmlReader as a parameter.

Load(TextReader, LoadOptions)

Crea un nuevo XDocument a partir de un TextReader y, de manera opcional, conserva el espacio en blanco, establece el URI base y retiene la información de línea.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

Objeto TextReader que incluye el contenido del XDocument.A TextReader that contains the content for the XDocument.

options
LoadOptions

LoadOptions que especifica el comportamiento de los espacios en blanco y si se carga la información del URI base y de la línea base.A LoadOptions that specifies white space behavior, and whether to load base URI and line information.

Devoluciones

XDocument que contiene el XML que se leyó desde el objeto TextReader especificado.An XDocument that contains the XML that was read from the specified TextReader.

Ejemplos

En el ejemplo siguiente se crea un documento a partir de una 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)  

En este ejemplo se produce la siguiente salida:This example produces the following output:

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

Comentarios

Si se aplica sangría al XML de origen, al establecer la marca de PreserveWhitespace en options, el lector Lee todos los espacios en blanco en el XML de origen.If the source XML is indented, setting the PreserveWhitespace flag in options causes the reader to read all white space in the source XML. Los nodos de tipo XText se crean para espacios en blanco significativos e insignificantes.Nodes of type XText are created for both significant and insignificant white space.

Si se aplica sangría al XML de origen, no al establecer la marca de PreserveWhitespace en options, el lector omitirá todos los espacios en blanco insignificantes en el XML de origen.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. El árbol XML se crea sin ningún nodo de texto para los espacios en blanco insignificantes.The XML tree is created without any text nodes for insignificant white space.

Si no se aplica sangría al XML de origen, el establecimiento de la marca de PreserveWhitespace en options no tiene ningún efecto.If the source XML is not indented, setting the PreserveWhitespace flag in options has no effect. Todavía se conservan los espacios en blanco significativos y no hay intervalos de espacios en blanco insignificantes que podrían provocar la creación de más nodos de texto de espacio en blanco.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 obtener más información, vea conservar el espacio en blanco al cargar o analizar XML y conservar el espacio en blanco durante la serialización.For more information, see Preserving White Space while Loading or Parsing XML and Preserving White Space While Serializing.

Utilice Parse para crear una XElement a partir de una cadena que contiene XML.Use Parse to create an XElement from a string that contains XML.

La configuración de SetBaseUri no es válida cuando se carga desde un TextReader.Setting SetBaseUri is not valid when loading from a TextReader.

Si establece la marca SetLineInfo, se produce una reducción del rendimiento.There is a performance penalty if you set the SetLineInfo flag.

La información de línea es precisa inmediatamente después de cargar el documento XML.The line information is accurate immediately after loading the XML document. Si modifica el árbol XML después de cargar el documento, es posible que la información de línea deje de ser significativa.If you modify the XML tree after loading the document, the line information may become meaningless.

La funcionalidad de carga de LINQ to XML se basa en XmlReader.LINQ to XML's loading functionality is built upon XmlReader. Por lo tanto, puede detectar cualquier excepción que produzcan los métodos de sobrecarga XmlReader.Create y los XmlReader métodos que leen y analizan el 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.

Consulte también:

Load(String, LoadOptions)

Crea un nuevo XDocument a partir de un archivo y, de manera opcional, conserva el espacio en blanco, establece el URI base y retiene la información de línea.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

Cadena URI que hace referencia al archivo que se va a cargar en un nuevo XDocument.A URI string that references the file to load into a new XDocument.

options
LoadOptions

LoadOptions que especifica el comportamiento de los espacios en blanco y si se carga la información del URI base y de la línea base.A LoadOptions that specifies white space behavior, and whether to load base URI and line information.

Devoluciones

XDocument con el contenido del archivo especificado.An XDocument that contains the contents of the specified file.

Ejemplos

En el ejemplo siguiente se muestra cómo cargar una XDocument desde un archivo.The following example shows how to load an XDocument from a file.

Este ejemplo utiliza el siguiente documento XML:This example uses the following XML document:

Archivo XML de ejemplo: Pedido de compra común (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())  

En este ejemplo se produce la siguiente salida:This example produces the following output:

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

Comentarios

Si se aplica sangría al XML de origen, al establecer la marca de PreserveWhitespace en options, el lector Lee todos los espacios en blanco en el XML de origen.If the source XML is indented, setting the PreserveWhitespace flag in options causes the reader to read all white space in the source XML. Los nodos de tipo XText se crean para espacios en blanco significativos e insignificantes.Nodes of type XText are created for both significant and insignificant white space.

Si se aplica sangría al XML de origen, no al establecer la marca de PreserveWhitespace en options, el lector omitirá todos los espacios en blanco insignificantes en el XML de origen.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. El árbol XML se crea sin ningún nodo de texto para los espacios en blanco insignificantes.The XML tree is created without any text nodes for insignificant white space.

Si no se aplica sangría al XML de origen, el establecimiento de la marca de PreserveWhitespace en options no tiene ningún efecto.If the source XML is not indented, setting the PreserveWhitespace flag in options has no effect. Todavía se conservan los espacios en blanco significativos y no hay intervalos de espacios en blanco insignificantes que podrían provocar la creación de más nodos de texto de espacio en blanco.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 obtener más información, vea conservar el espacio en blanco al cargar o analizar XML y conservar el espacio en blanco durante la serialización.For more information, see Preserving White Space while Loading or Parsing XML and Preserving White Space While Serializing.

Utilice Parse para crear una XDocument a partir de una cadena que contiene XML.Use Parse to create an XDocument from a string that contains XML.

Si establece las marcas SetBaseUri y SetLineInfo, se produce una reducción del rendimiento.There is a performance penalty if you set the SetBaseUri and the SetLineInfo flags.

El URI base y la información de línea son precisos inmediatamente después de cargar el documento XML.The base URI and the line information are accurate immediately after loading the XML document. Si modifica el árbol XML después de cargar el documento, el URI base y la información de línea pueden quedar sin sentido.If you modify the XML tree after loading the document, the base URI and line information may become meaningless.

La funcionalidad de carga de LINQ to XML se basa en XmlReader.LINQ to XML's loading functionality is built upon XmlReader. Por lo tanto, puede detectar cualquier excepción que produzcan los métodos de sobrecarga XmlReader.Create y los XmlReader métodos que leen y analizan el 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.

Consulte también:

Load(XmlReader, LoadOptions)

Carga un XDocument desde un XmlReader y, de manera opcional, se establece el URI base y se retiene la información de línea.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

XmlReader que se leerá para obtener el contenido del XDocument.A XmlReader that will be read for the content of the XDocument.

options
LoadOptions

LoadOptions que especifica si se va a cargar el URI base y la información de la línea.A LoadOptions that specifies whether to load base URI and line information.

Devoluciones

XDocument que contiene el XML que se leyó desde el objeto XmlReader especificado.An XDocument that contains the XML that was read from the specified XmlReader.

Ejemplos

En el ejemplo siguiente se carga la información de línea que carga desde el XmlReader.The following example loads the line information that it loads from the XmlReader. A continuación, imprime la información de la línea.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  

En este ejemplo se produce la siguiente salida:This example produces the following output:

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

Comentarios

Mediante la creación de una XmlNodeReader a partir de un documento DOM y el uso del XmlNodeReader para crear un XElement, este método se puede utilizar para crear una copia de un documento DOM en un árbol 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.

Utilice Parse para crear una XDocument a partir de una cadena que contiene XML.Use Parse to create an XDocument from a string that contains XML.

La configuración de PreserveWhitespace no es válida cuando se carga desde un XmlReader.Setting PreserveWhitespace is not valid when loading from a XmlReader. El XmlReader se configurará para leer el espacio en blanco o no.The XmlReader will be configured to either read whitespace or not. El árbol de LINQ to XML se rellenará con los nodos de espacio en blanco que el lector muestra.The LINQ to XML tree will be populated with the whitespace nodes that the reader surfaces. Este será el comportamiento independientemente de si PreserveWhitespace está establecido o no.This will be the behavior regardless of whether PreserveWhitespace is set or not.

El XmlReader puede tener un URI base válido o no.The XmlReader may have a valid base URI or not. Si establece SetBaseUri, el URI base se establecerá en el árbol XML a partir del URI base al que se refiere el 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.

El XmlReader puede tener una información de línea válida o no.The XmlReader may have a valid line information or not. Si establece SetLineInfo, la información de línea se establecerá en el árbol XML a partir de la información de línea que se indica en el 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.

Si establece la marca SetLineInfo, se produce una reducción del rendimiento.There is a performance penalty if you set the SetLineInfo flag.

La información de línea es precisa inmediatamente después de cargar el documento XML.The line information is accurate immediately after loading the XML document. Si modifica el árbol XML después de cargar el documento, es posible que la información de línea deje de ser significativa.If you modify the XML tree after loading the document, the line information may become meaningless.

La funcionalidad de carga de LINQ to XML se basa en XmlReader.LINQ to XML's loading functionality is built upon XmlReader. Por lo tanto, puede detectar cualquier excepción que produzcan los métodos de sobrecarga XmlReader.Create y los XmlReader métodos que leen y analizan el 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.

Consulte también:

Se aplica a