XElement.Parse Método
Definição
Importante
Algumas informações dizem respeito a um produto pré-lançado que pode ser substancialmente modificado antes de ser lançado. A Microsoft não faz garantias, de forma expressa ou implícita, em relação à informação aqui apresentada.
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
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
- 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.