Aracılığıyla paylaş


Visual Basic'te XML Sabitler (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 sabitlerini kullanarak bir XML ağacı oluşturun

Aşağıdaki örnek, XML değişmez değerlerini kullanarak XElement öğesi ve bu durumda contacts nasıl oluşturulacağını göstermektedir.

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>

XML değişmez değerleri kullanarak, basit içeriğe sahip bir XElement oluşturma örneği

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ş bir öğe oluşturmak için XML sabiti kullanın

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 bir XElement türüyse, 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 gömülü bir ifade kullanırsanız ve mevcut düğümler zaten bir üst öğeye sahipse, düğümler klonlanır. Yeni kopyalanan düğümler yeni XML ağacına eklenir. Mevcut düğümlere ana düğümleri atanmadıysa, düğümler doğrudan 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 gömülü bir ifade kullanıyorsanız ve eklenen düğümler zaten bir üst düğüme bağlıysa, düğümler kopyalanır ve klonlar yeni XML ağacına eklenir. Mevcut düğümler ana düğüme bağlı değilse, bunlar yalnızca yeni XML ağacına bağlanır.

Aşağıdaki kod, bir ağaca ebeveyn öğesi eklediğinizde ve ebeveyni olmayan 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 bakınız