Aracılığıyla paylaş


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))

Ayrıca bkz.