Comment analyser une chaîne (LINQ to XML)
Cet article montre comment analyser une chaîne pour créer une arborescence XML en C# et Visual Basic.
Exemple
Le code C# suivant montre comment analyser une chaîne 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);
Vous pouvez analyser une chaîne en Visual Basic d’une manière similaire. Toutefois, il est plus efficace d’utiliser des littéraux XML, comme illustré dans le code suivant, car leur impact sur les performances n’est pas aussi sévère que l’analyse de code XML à partir d’une chaîne.
Lorsque vous utilisez des littéraux XML, il vous suffit de copier et coller votre code XML dans votre programme Visual Basic.
Notes
L'analyse de texte ou le chargement d'un document XML à partir d'un fichier texte est moins efficace que la construction fonctionnelle. Si vous initialisez une arborescence XML à partir de code, la construction fonctionnelle requiert moins de temps processeur que l’analyse de texte.
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>
Le nœud Contacts
racine a deux nœuds Contact
. Pour accéder à des données spécifiques dans votre code XML analysé, utilisez la méthode XElement.Elements() qui, dans ce cas, retourne les éléments enfants du nœud Contacts
racine. L’exemple suivant imprime le premier nœud Contact
dans la 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))