Aracılığıyla paylaş


Visual Basic'te XML Değişmez Değerleri (LINQ to XML)

Bu makalede, XML değişmez değerleri ve katıştırılmış ifadeler kullanılarak Visual Basic'te XML ağaçları oluşturma hakkında bilgi sağlanır.

Örnek: XML değişmez değerlerini kullanarak XML ağacı oluşturma

Aşağıdaki örnekte, XML değişmez değerleriyle bir öğesinin contactsnasıl oluşturulacağı XElementgösterilmektedir:

Dim contacts As XElement = _
    <Contacts>
        <Contact>
            <Name>Patrick Hines</Name>
            <Phone>206-555-0144</Phone>
            <Address>
                <Street1>123 Main St</Street1>
                <City>Mercer Island</City>
                <State>WA</State>
                <Postal>68042</Postal>
            </Address>
        </Contact>
    </Contacts>

Örnek: Basit içeriğe sahip bir XElement oluşturmak için XML değişmez değerlerini kullanma

Aşağıdaki gibi basit içerik içeren bir XElement oluşturabilirsiniz:

Dim n as XElement = <Customer>Adventure Works</Customer>
Console.WriteLine(n)

Bu örnek aşağıdaki çıkışı oluşturur:

<Customer>Adventure Works</Customer>

Örnek: Boş öğe oluşturmak için XML değişmez değeri kullanma

Aşağıdaki gibi boş XElementbir oluşturabilirsiniz:

Dim n As XElement = <Customer/>
Console.WriteLine(n)

Bu örnek aşağıdaki çıkışı oluşturur:

<Customer />

İçerik oluşturmak için eklenmiş ifadeleri kullanma

XML değişmez değerlerinin önemli bir özelliği, katıştırılmış ifadelere izin vermeleridir. Katıştırılmış ifadeler, bir ifadeyi değerlendirmenize ve ifadenin sonuçlarını XML ağacına eklemenize olanak tanır. İfade türüne XElementgöre değerlendirilirse, ağaca bir öğe eklenir. İfade türüne XAttributegöre değerlendirilirse, ağaca bir öznitelik eklenir. Ağaçta yalnızca geçerli oldukları yerlerde öğe ve öznitelik ekleyebilirsiniz.

katıştırılmış ifadeye yalnızca tek bir ifadenin girebileceğini unutmayın. Birden çok deyim ekleyemezsiniz. Bir ifade tek bir satırın ötesine uzanıyorsa, satır devamı karakterini kullanmanız gerekir.

Yeni bir XML ağacına var olan düğümleri (öğeler dahil) ve öznitelikleri eklemek için eklenmiş bir ifade kullanırsanız ve mevcut düğümler zaten üst öğeyse düğümler kopyalanır. Yeni kopyalanan düğümler yeni XML ağacına eklenir. Mevcut düğümler üst öğeli değilse, düğümler yalnızca yeni XML ağacına eklenir. Bu makaledeki son örnekte bunu gösterilmektedir.

Örnek: Öğe eklemek için katıştırılmış ifade kullanma

Aşağıdaki örnekte, ağaç içine bir öğe eklemek için eklenmiş ifade kullanılmaktadır:

xmlTree1 As XElement = _
    <Root>
        <Child>Contents</Child>
    </Root>
Dim xmlTree2 As XElement = _
    <Root>
        <%= xmlTree1.<Child> %>
    </Root>
Console.WriteLine(xmlTree2)

Bu örnek aşağıdaki çıkışı oluşturur:

<Root>
  <Child>Contents</Child>
</Root>

Örnek: İçerik için katıştırılmış ifade kullanma

Bir öğenin içeriğini sağlamak için eklenmiş ifade kullanabilirsiniz:

Dim str As String
str = "Some content"
Dim root As XElement = <Root><%= str %></Root>
Console.WriteLine(root)

Bu örnek aşağıdaki çıkışı oluşturur:

<Root>Some content</Root>

Örnek: Katıştırılmış ifadede LINQ sorgusu kullanma

Bir öğenin içeriğini sağlamak için LINQ sorgusunun sonuçlarını kullanabilirsiniz:

Dim arr As Integer() = {1, 2, 3}

Dim n As XElement = _
    <Root>
        <%= From i In arr Select <Child><%= i %></Child> %>
    </Root>

Console.WriteLine(n)

Bu örnek aşağıdaki çıkışı oluşturur:

<Root>
  <Child>1</Child>
  <Child>2</Child>
  <Child>3</Child>
</Root>

Örnek: Düğüm adları sağlamak için katıştırılmış ifade kullanma

Öznitelik adlarını, öznitelik değerlerini, öğe adlarını ve öğe değerlerini hesaplamak için eklenmiş ifade de kullanabilirsiniz:

Dim eleName As String = "ele"
Dim attName As String = "att"
Dim attValue As String = "aValue"
Dim eleValue As String = "eValue"
Dim n As XElement = _
    <Root <%= attName %>=<%= attValue %>>
        <<%= eleName %>>
            <%= eleValue %>
        </>
    </Root>
Console.WriteLine(n)

Bu örnek aşağıdaki çıkışı oluşturur:

<Root att="aValue">
  <ele>eValue</ele>
</Root>

Örnek: Düğümleri kopyalamak ve eklemek için katıştırılmış ifade kullanma

Daha önce belirtildiği gibi, yeni bir XML ağacına mevcut düğümleri (öğeler dahil) ve öznitelikleri eklemek için eklenmiş bir ifade kullanırsanız ve düğüm eklenen düğümler zaten üst öğeyse, düğümler kopyalanır ve kopyaları yeni XML ağacına eklenir. Mevcut düğümler üst öğeli değilse, bunlar yalnızca yeni XML ağacına eklenir.

Aşağıdaki kod, bir ağaca üst öğe eklediğinizde ve bir ağaca üst öğe içermeyen bir öğe eklediğinizde davranışı gösterir.

' Create a tree with a child element.
Dim xmlTree1 As XElement = _
    <Root>
        <Child1>1</Child1>
    </Root>

' Create an element that's not parented.
Dim child2 As XElement = <Child2>2</Child2>

' Create a tree and add Child1 and Child2 to it.
Dim xmlTree2 As XElement = _
    <Root>
        <%= xmlTree1.<Child1>(0) %>
        <%= child2 %>
    </Root>

' Compare Child1 identity.
Console.WriteLine("Child1 was {0}", _
    IIf(xmlTree1.Element("Child1") Is xmlTree2.Element("Child1"), _
    "attached", "cloned"))

' Compare Child2 identity.
Console.WriteLine("Child2 was {0}", _
    IIf(child2 Is xmlTree2.Element("Child2"), _
    "attached", "cloned"))

Bu örnek aşağıdaki çıkışı oluşturur:

Child1 was cloned
Child2 was attached

Ayrıca bkz.