XElement.Parse Método

Definição

Carregue um XElement de uma cadeia de caracteres que contenha XML, preservando opcionalmente o espaço em branco e retendo informações de linha.

Sobrecargas

Nome Description
Parse(String)

Carregue um XElement de uma cadeia de caracteres que contém XML.

Parse(String, LoadOptions)

Carregue um XElement de uma cadeia de caracteres que contenha XML, preservando opcionalmente o espaço em branco e retendo informações de linha.

Parse(String)

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

Carregue um XElement de uma cadeia de caracteres que contém 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

Um String que contém XML.

Retornos

Um XElement populado da cadeia de caracteres que contém XML.

Exemplos

O exemplo a seguir cria uma cadeia de caracteres que contém XML. Em seguida, analisa a cadeia de caracteres em um 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>

Comentários

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

A funcionalidade de carregamento do LINQ to XML é criada.XmlReader Portanto, você pode capturar quaisquer exceções geradas pelos XmlReader.Create métodos de sobrecarga e pelos XmlReader métodos que leem e analisam o documento.

Confira também

Aplica-se a

Parse(String, LoadOptions)

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

Carregue um XElement de uma cadeia de caracteres que contenha XML, preservando opcionalmente o espaço em branco e retendo informações de 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

Um String que contém XML.

options
LoadOptions

Um LoadOptions que especifica o comportamento do espaço em branco e se as informações de linha e URI base devem ser carregadas.

Retornos

Um XElement populado da cadeia de caracteres que contém XML.

Exemplos

O exemplo a seguir analisa uma cadeia de caracteres de XElement duas maneiras diferentes: preservar o espaço em branco e não preservar o espaço em branco. Em seguida, ele usa 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 a seguir retém informações de linha enquanto analisa a cadeia de caracteres.

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

Comentários

Se o XML de origem estiver recuado, definir o PreserveWhitespace sinalizador options fará com que o leitor leia todo o espaço em branco no XML de origem. Nós de tipo XText são criados para espaço em branco significativo e insignificante.

Se o XML de origem estiver recuado, não definir o PreserveWhitespace sinalizador options fará com que o leitor ignore todo o espaço em branco insignificante no XML de origem. A árvore XML é criada sem nenhum nó de texto para espaço em branco insignificante.

Se o XML de origem não estiver recuado, a definição do PreserveWhitespace sinalizador options não terá efeito. Espaço em branco significativo ainda é preservado e não há intervalos de espaço em branco insignificante que possam causar a criação de mais nós de texto de espaço em branco.

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

A configuração SetBaseUri não terá efeito ao analisar de um String.

Pode XmlReader ter uma informação de linha válida ou não. 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.

Há uma penalidade de desempenho se você definir o SetLineInfo sinalizador.

As informações de linha são precisas imediatamente após o carregamento do documento XML. Se você modificar a árvore XML depois de carregar o documento, as informações de linha poderão ficar sem sentido.

A funcionalidade de carregamento do LINQ to XML é criada.XmlReader Portanto, você pode capturar quaisquer exceções geradas pelos XmlReader.Create métodos de sobrecarga e pelos XmlReader métodos que leem e analisam o documento.

Confira também

Aplica-se a