Dize ayrıştırma (LINQ to XML)
Bu makalede, C# ve Visual Basic'te XML ağacı oluşturmak için bir dizenin nasıl ayrıştıracağı gösterilmektedir.
Örnek
Aşağıdaki C# kodu bir XML dizesini ayrıştırma işlemini gösterir:
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);
Visual Basic'te bir dizeyi benzer şekilde ayrıştırabilirsiniz. Ancak, XML değişmez değerlerinin aşağıdaki kodda gösterildiği gibi kullanılması daha verimlidir çünkü XML değişmez değerleri bir dizeden XML ayrıştırma ile aynı performans cezalarından muzdarip değildir.
XML değişmez değerlerini kullanarak XML'nizi kopyalayıp Visual Basic programınıza yapıştırabilirsiniz.
Not
Metin ayrıştırma veya xml belgesini metin dosyasından yükleme, işlevsel yapıdan daha az verimlidir. Bir XML ağacını koddan başlatıyorsanız, işlevsel yapıyı kullanmak, metni ayrıştırmaktan daha az işlemci süresi alır.
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>
Kök Contacts
düğümün iki Contact
düğümü vardır. Ayrıştırılmış XML'nizdeki belirli verilere erişmek için, bu durumda kök Contacts
düğümün alt öğelerini döndüren XElement.Elements() yöntemini kullanın. Aşağıdaki örnek, ilk Contact
düğümü konsola yazdırır:
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))