XElement.Parse Método

Definição

Carregar an XElement de uma string que contenha XML, preservando opcionalmente o espaço em branco e mantendo a informação da linha.

Sobrecargas

Name Descrição
Parse(String)

Carregue um XElement a partir de uma string que contenha XML.

Parse(String, LoadOptions)

Carregar an XElement de uma string que contenha XML, preservando opcionalmente o espaço em branco e mantendo a informação da linha.

Parse(String)

Origem:
XElement.cs
Origem:
XElement.cs
Origem:
XElement.cs
Origem:
XElement.cs
Origem:
XElement.cs

Carregue um XElement a partir de uma string que contenha 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

A String que contém XML.

Devoluções

Um XElement povoado a partir da string que contém XML.

Exemplos

O exemplo seguinte cria uma cadeia que contém XML. Depois, analisa a cadeia num XElement.

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

Este exemplo produz a seguinte saída:

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

Observações

Este método não preserva o espaço em branco. Se quiseres preservar espaço em branco na árvore XML, usa a sobrecarga do Parse método que toma LoadOptions como parâmetro. Para mais informações, consulte Preservar espaço em branco ao carregar ou analisar XML e Preservar espaço em branco durante a serialização.

A funcionalidade de carregamento do LINQ para XML baseia-se em XmlReader. Portanto, pode detetar quaisquer exceções que sejam lançadas pelos XmlReader.Create métodos de sobrecarga e pelos XmlReader métodos que leem e analisam o documento.

Ver também

Aplica-se a

Parse(String, LoadOptions)

Origem:
XElement.cs
Origem:
XElement.cs
Origem:
XElement.cs
Origem:
XElement.cs
Origem:
XElement.cs

Carregar an XElement de uma string que contenha XML, preservando opcionalmente o espaço em branco e mantendo a informação da linha.

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

A String que contém XML.

options
LoadOptions

A LoadOptions que especifica o comportamento em espaço em branco, e se deve carregar o URI base e a informação de linha.

Devoluções

Um XElement povoado a partir da string que contém XML.

Exemplos

O exemplo seguinte analisa uma cadeia em an XElement de duas formas diferentes: preservando o espaço em branco e não preservando o espaço em branco. Depois, utiliza uma consulta para determinar o número de nós de espaço em branco na árvore 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 exemplo produz a seguinte saída:

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

O exemplo seguinte mantém a informação da linha enquanto analisa a cadeia.

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 exemplo produz a seguinte saída:

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

Observações

Se o XML de origem estiver indentado, ao definir a PreserveWhitespace flag em options faz com que o leitor leia todo o espaço em branco do XML de origem. Os nós de tipo XText são criados tanto para espaços em branco significativos como insignificantes.

Se o XML de origem estiver indentado, não definir a PreserveWhitespace flag options faz com que o leitor ignore todo o espaço em branco insignificante no XML de origem. A árvore XML é criada sem quaisquer nós de texto para espaço em branco insignificante.

Se o XML de origem não estiver indentado, definir a PreserveWhitespace flag não options tem efeito. Um espaço em branco significativo ainda está preservado, e não existem intervalos de espaços em branco insignificantes que possam causar a criação de mais nós de texto em espaços em branco.

Para mais informações, consulte Preservar espaço em branco ao carregar ou analisar XML e Preservar espaço em branco durante a serialização.

A definição SetBaseUri não terá efeito ao analisar a partir de um String.

Podem XmlReader ter uma informação válida da linha ou não. Se definir SetLineInfo, a informação de linha será definida na árvore XML a partir da informação de linha reportada pelo XmlReader.

Há uma penalização de desempenho se definires a SetLineInfo bandeira.

A informação da linha é precisa imediatamente após o carregamento do documento XML. Se modificar a árvore XML após carregar o documento, a informação da linha pode tornar-se insignificante.

A funcionalidade de carregamento do LINQ para XML baseia-se em XmlReader. Portanto, pode detetar quaisquer exceções que sejam lançadas pelos XmlReader.Create métodos de sobrecarga e pelos XmlReader métodos que leem e analisam o documento.

Ver também

Aplica-se a