Compartir a través de


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.

Sobrecargas

Parse(String)

Cargue XElement a partir de una cadena que contiene el 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.

Parse(String)

Cargue XElement a partir de una cadena que contiene el 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.

Devoluciones

XElement

XElement rellenado a partir de la cadena que contiene XML.

Ejemplos

En el ejemplo siguiente se crea una cadena que contiene XML. A continuación, analiza la cadena en .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:

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

Comentarios

Este método no conserva el espacio en blanco. Si desea conservar el espacio en blanco en el árbol XML, use la sobrecarga del Parse método que toma LoadOptions como parámetro. Para obtener más información, vea Conservar el espacio en blanco al cargar o analizar XML y Conservar espacio en blanco mientras se serializa.

la funcionalidad de carga de LINQ to XML se basa en XmlReader. Por lo tanto, puede detectar las excepciones producidas por los XmlReader.Create métodos de sobrecarga y los XmlReader métodos que leen y analizan el documento.

Consulte también

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.

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.

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.

Devoluciones

XElement

XElement rellenado a partir de la cadena que contiene XML.

Ejemplos

En el ejemplo siguiente se analiza una cadena de XElement dos maneras diferentes: conservar los espacios en blanco y no conservar los espacios en blanco. A continuación, usa una consulta para determinar el número de nodos de espacio en blanco en el árbol XML resultante.

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:

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.

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:

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

Comentarios

Si el XML de origen tiene sangría, establecer la PreserveWhitespace marca en options hace que el lector lea todos los espacios en blanco del XML de origen. Los nodos de tipo XText se crean para espacios en blanco significativos e insignificantes.

Si se aplica sangría al XML de origen, no establecer la PreserveWhitespace marca en options hace que el lector omita todos los espacios en blanco insignificantes en el XML de origen. El árbol XML se crea sin ningún nodo de texto para espacios en blanco insignificantes.

Si no se aplica sangría al XML de origen, establecer la PreserveWhitespace marca en options no tiene ningún efecto. Todavía se conserva un espacio en blanco significativo 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.

Para obtener más información, vea Conservar el espacio en blanco al cargar o analizar XML y Conservar espacio en blanco mientras se serializa.

La configuración SetBaseUri no tendrá ningún efecto al analizar desde .String

XmlReader puede tener información de línea válida o no. Si establece SetLineInfo, la información de línea se establecerá en el árbol XML de la información de línea notificada por .XmlReader

Hay una penalización de rendimiento si establece la SetLineInfo marca.

La información de línea es precisa inmediatamente después de cargar el documento XML. Si modifica el árbol XML después de cargar el documento, es posible que la información de línea no tenga sentido.

la funcionalidad de carga de LINQ to XML se basa en XmlReader. Por lo tanto, puede detectar las excepciones producidas por los XmlReader.Create métodos de sobrecarga y los XmlReader métodos que leen y analizan el documento.

Consulte también

Se aplica a