Como analisar uma cadeia de caracteres (LINQ to XML)
Este artigo mostra como analisar uma cadeia de caracteres para criar uma árvore XML em C# e no Visual Basic.
Exemplo
O código C# a seguir mostra como analisar uma cadeia de caracteres XML:
XElement contacts = XElement.Parse(
@"<Contacts>
<Contact>
<Name>Patrick Hines</Name>
<Phone Type=""home"">206-555-0144</Phone>
<Phone Type=""work"">425-555-0145</Phone>
<Address>
<Street1>123 Main St</Street1>
<City>Mercer Island</City>
<State>WA</State>
<Postal>68042</Postal>
</Address>
<NetWorth>10</NetWorth>
</Contact>
<Contact>
<Name>Gretchen Rivas</Name>
<Phone Type=""mobile"">206-555-0163</Phone>
<Address>
<Street1>123 Main St</Street1>
<City>Mercer Island</City>
<State>WA</State>
<Postal>68042</Postal>
</Address>
<NetWorth>11</NetWorth>
</Contact>
</Contacts>");
Console.WriteLine(contacts);
Você pode analisar uma cadeia de caracteres no Visual Basic de maneira semelhante. No entanto, é mais eficiente usar literais XML, como mostrado no código a seguir, porque os literais XML não sofrem as mesmas penalidades de desempenho que a análise XML de uma cadeia de caracteres.
Usando literais XML, você pode simplesmente copiar e colar seu XML em seu programa Visual Basic.
Nota
Analisar texto ou carregar um documento XML de um arquivo de texto é menos eficiente do que a construção funcional. Se você estiver inicializando uma árvore XML a partir do código, levará menos tempo do processador para usar a construção funcional do que para analisar o texto.
Dim contacts as XElement = _
<Contacts>
<Contact>
<Name>Patrick Hines</Name>
<Phone Type="home">206-555-0144</Phone>
<Phone Type="work">425-555-0145</Phone>
<Address>
<Street1>123 Main St</Street1>
<City>Mercer Island</City>
<State>WA</State>
<Postal>68042</Postal>
</Address>
<NetWorth>10</NetWorth>
</Contact>
<Contact>
<Name>Gretchen Rivas</Name>
<Phone Type="mobile">206-555-0163</Phone>
<Address>
<Street1>123 Main St</Street1>
<City>Mercer Island</City>
<State>WA</State>
<Postal>68042</Postal>
</Address>
<NetWorth>11</NetWorth>
</Contact>
</Contacts>
O nó raiz Contacts
tem dois Contact
nós. Para acessar alguns dados específicos em seu XML analisado, use o método XElement.Elements(), que neste caso retorna os elementos filho do nó raiz Contacts
. O exemplo a seguir imprime o primeiro Contact
nó no console:
List<XElement> contactNodes = contacts.Elements("Contact").ToList();
Console.WriteLine(contactNodes[0]);
Dim contactNodes As List(Of XElement) = contacts.Elements("Contact").ToList()
Console.WriteLine(contactNodes(0))