XElement.Parse Método

Definición

Carga un objeto XElement desde una cadena que contiene XML y, opcionalmente, conserva los espacios en blanco y la información de línea.Load an XElement from a string that contains XML, optionally preserving white space and retaining line information.

Sobrecargas

Parse(String)

Cargue XElement a partir de una cadena que contiene el XML.Load an XElement from a string that contains XML.

Parse(String, LoadOptions)

Carga un objeto XElement desde una cadena que contiene XML y, opcionalmente, conserva los espacios en blanco y la información de línea.Load an XElement from a string that contains XML, optionally preserving white space and retaining line information.

Parse(String)

Cargue XElement a partir de una cadena que contiene el XML.Load an XElement from a string that contains XML.

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

Parámetros

text
String

Objeto String que contiene código XML.A String that contains XML.

Devoluciones

XElement

XElement rellenado a partir de la cadena que contiene XML.An XElement populated from the string that contains XML.

Ejemplos

En el ejemplo siguiente se crea una cadena que contiene XML.The following example creates a string that contains XML. A continuación, analiza la cadena en un XElement .It then parses the string into an XElement.

XElement xmlTree = XElement.Parse("<Root> <Child> </Child> </Root>");  
Console.WriteLine(xmlTree);  
Dim xmlTree As XElement = <Root><Child></Child></Root>  
Console.WriteLine(xmlTree)  

Este ejemplo produce el siguiente resultado:This example produces the following output:

<Root>  
  <Child></Child>  
</Root>  

Comentarios

Este método no conserva el espacio en blanco.This method does not preserve white space. Si desea conservar los espacios en blanco en el árbol XML, utilice la sobrecarga del Parse método que toma LoadOptions como parámetro.If you want to preserve white space in the XML tree, use the overload of the Parse method that takes LoadOptions as a parameter. 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 Preserve white space while loading or parsing XML and Preserve white space while serializing.

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 XmlReader.Create métodos de sobrecarga 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.

Se aplica a

Parse(String, LoadOptions)

Carga un objeto XElement desde una cadena que contiene XML y, opcionalmente, conserva los espacios en blanco y la información de línea.Load an XElement from a string that contains XML, optionally preserving white space and retaining line information.

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

Parámetros

text
String

Objeto String que contiene código XML.A String that contains XML.

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

XElement

XElement rellenado a partir de la cadena que contiene XML.An XElement populated from the string that contains XML.

Ejemplos

En el siguiente ejemplo se analiza una cadena en XElement de dos maneras diferentes: conservar el espacio en blanco y no conservar el espacio en blanco.The following example parses a string into an XElement in two different ways: preserving white space, and not preserving white space. A continuación, usa una consulta para determinar el número de nodos de espacio en blanco en el árbol XML resultante.It then uses a query to determine the number of white space nodes in the resulting XML tree.

int whiteSpaceNodes;  

XElement xmlTree1 = XElement.Parse("<Root> <Child> </Child> </Root>",  
    LoadOptions.None);  
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);  

XElement xmlTree2 = XElement.Parse("<Root> <Child> </Child> </Root>",  
    LoadOptions.PreserveWhitespace);  
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 whiteSpaceNodes As Integer  

Dim xmlTree1 As XElement = XElement.Parse("<Root> <Child> </Child> </Root>", LoadOptions.None)  
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)  

Dim xmlTree2 As XElement = XElement.Parse("<Root> <Child> </Child> </Root>", LoadOptions.PreserveWhitespace)  
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)  

Este ejemplo produce el siguiente resultado:This example produces the following output:

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

En el ejemplo siguiente se conserva la información de línea a medida que analiza la cadena.The following example retains line information as it parses the string.

string markup =  
@"<Root>  
    <Child>  
        <GrandChild/>  
    </Child>  
</Root>";  

XElement xRoot = XElement.Parse(markup, 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>"  

Dim xRoot As XElement = XElement.Parse(markup, 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  

Este ejemplo produce el siguiente resultado:This example produces the following output:

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

Comentarios

Si se aplica sangría al XML de origen, al establecer la PreserveWhitespace marca 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 PreserveWhitespace marca en, options el lector omite 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 PreserveWhitespace de la marca 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 Preserve white space while loading or parsing XML and Preserve white space while serializing.

SetBaseUriLa configuración no tendrá ningún efecto cuando se analice desde un String .Setting SetBaseUri will have no effect when parsing from a String.

XmlReaderPuede 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 indica 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, se produce una reducción del rendimiento SetLineInfo .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 XmlReader.Create métodos de sobrecarga 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.

Se aplica a