Bagikan melalui


Literal XML dalam Visual Basic (LINQ ke XML)

Artikel ini menyediakan informasi tentang membuat pohon XML di Visual Basic menggunakan literal XML dan ekspresi yang disematkan.

Contoh: Menggunakan literal XML untuk membuat pohon XML

Contoh berikut menunjukkan cara membuat XElement, dalam hal contactsini, dengan literal XML:

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>

Contoh: Menggunakan literal XML untuk membuat XElement dengan konten sederhana

Anda dapat membuat yang XElement berisi konten sederhana, sebagai berikut:

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

Contoh ini menghasilkan output berikut:

<Customer>Adventure Works</Customer>

Contoh: Gunakan literal XML untuk membuat elemen kosong

Anda dapat membuat kosong XElement, sebagai berikut:

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

Contoh ini menghasilkan output berikut:

<Customer />

Menggunakan ekspresi yang disematkan untuk membuat konten

Fitur penting literal XML adalah memungkinkan ekspresi yang disematkan. Ekspresi yang disematkan memungkinkan Anda mengevaluasi ekspresi dan menyisipkan hasil ekspresi ke dalam pohon XML. Jika ekspresi mengevaluasi ke jenis XElement, elemen dimasukkan ke dalam pohon. Jika ekspresi mengevaluasi ke jenis XAttribute, elemen dimasukkan ke dalam pohon. Anda dapat menyisipkan elemen dan atribut ke dalam pohon hanya di mana elemen dan atribut bersifat valid.

penting untuk dicatat bahwa hanya satu ekspresi yang dapat masuk ke ekspresi yang disematkan. Anda tidak dapat menyematkan beberapa pernyataan. Jika ekspresi melampaui satu baris, Anda harus menggunakan karakter kelanjutan baris.

Jika Anda menggunakan ekspresi tersemat untuk menambahkan node yang ada (termasuk elemen) dan atribut ke pohon XML baru dan jika simpul yang ada sudah diinduk, simpul akan dikloning. Node yang baru dikloning dilampirkan ke pohon XML baru. Jika node yang ada tidak diindukkan, node hanya dilampirkan ke pohon XML baru. Contoh terakhir dalam artikel ini menunjukkan hal ini.

Contoh: Menggunakan ekspresi yang disematkan untuk menyisipkan elemen

Contoh berikut menggunakan ekspresi yang disematkan untuk menyisipkan elemen ke dalam pohon:

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

Contoh ini menghasilkan output berikut:

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

Contoh: Menggunakan ekspresi yang disematkan untuk konten

Anda dapat menggunakan ekspresi tersemat untuk menyediakan konten elemen:

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

Contoh ini menghasilkan output berikut:

<Root>Some content</Root>

Contoh: Menggunakan kueri LINQ dalam ekspresi yang disematkan

Anda bisa menggunakan hasil kueri LINQ untuk menyediakan konten elemen:

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

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

Console.WriteLine(n)

Contoh ini menghasilkan output berikut:

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

Contoh: Menggunakan ekspresi yang disematkan untuk memberikan nama node

Anda juga dapat menggunakan ekspresi yang disematkan untuk menghitung nama atribut, nilai atribut, nama elemen, dan nilai elemen:

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)

Contoh ini menghasilkan output berikut:

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

Contoh: Menggunakan ekspresi yang disematkan untuk mengkloning dan melampirkan node

Seperti disebutkan sebelumnya, jika Anda menggunakan ekspresi tersemat untuk menambahkan simpul yang ada (termasuk elemen) dan atribut ke pohon XML baru, dan jika simpul yang ditambahkan simpul sudah diinduk, simpul dikloning dan kloning dilampirkan ke pohon XML baru. Jika node yang ada tidak diindukkan, node hanya dilampirkan ke pohon XML baru.

Contoh berikut menunjukkan perilaku saat Anda menambahkan elemen induk ke pohon, dan saat Anda menambahkan elemen tanpa induk ke pohon.

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

Contoh ini menghasilkan output berikut:

Child1 was cloned
Child2 was attached

Lihat juga