Bagikan melalui


Mempertahankan pasangan nama-nilai (LINQ ke XML)

Banyak aplikasi harus menyimpan informasi dan lebih baik disimpan sebagai pasangan nama-nilai. Informasi ini mungkin informasi konfigurasi atau pengaturan global. LINQ ke XML berisi metode yang memudahkan Anda mempertahankan satu set pasangan nama-nilai. Anda dapat menyimpan informasi sebagai atribut atau sebagai sekumpulan elemen turunan.

Satu perbedaan antara menjaga informasi sebagai atribut atau sebagai elemen turunan adalah bahwa atribut memiliki batasan bahwa hanya ada satu atribut dengan nama tertentu untuk suatu elemen. Batasan ini tidak berlaku untuk elemen turunan.

SetAttributeValue dan SetElementValue

Dua metode yang memfasilitasi penetapan pasangan nama-nilai adalah SetAttributeValue dan SetElementValue. Kedua metode ini memiliki semantik yang sama.

SetAttributeValue dapat menambahkan, memodifikasi, dan menghapus atribut elemen.

  • Jika Anda memanggil SetAttributeValue dengan nama atribut yang tidak ada, metode membuat atribut baru dan menambahkannya ke elemen yang ditentukan.
  • Jika Anda memanggil SetAttributeValue dengan nama atribut yang ada dan dengan beberapa konten tertentu, konten atribut diganti dengan konten yang ditentukan.
  • Jika Anda memanggil SetAttributeValue dengan nama atribut yang ada, dan menentukan null untuk konten, atribut akan dihapus dari induknya.

SetElementValue dapat menambahkan, memodifikasi, dan menghapus elemen turunan dari suatu elemen.

  • Jika Anda memanggil SetElementValue dengan nama elemen turunan yang tidak ada, metode membuat elemen baru dan menambahkannya ke elemen yang ditentukan.
  • Jika Anda memanggil SetElementValue dengan nama elemen yang ada dan dengan beberapa konten tertentu, konten elemen diganti dengan konten yang ditentukan.
  • Jika Anda memanggil SetElementValue dengan nama elemen yang ada, dan menentukan null untuk konten, elemen dihapus dari induknya.

Contoh: Menggunakan SetAttributeValue untuk membuat dan memelihara daftar pasangan nama-nilai

Contoh berikut membuat elemen tanpa atribut. Kemudian ia menggunakan metode SetAttributeValue untuk membuat dan memelihara daftar pasangan nama-nilai.

// Create an element with no content.
XElement root = new XElement("Root");

// Add a number of name-value pairs as attributes.
root.SetAttributeValue("Top", 22);
root.SetAttributeValue("Left", 20);
root.SetAttributeValue("Bottom", 122);
root.SetAttributeValue("Right", 300);
root.SetAttributeValue("DefaultColor", "Color.Red");
Console.WriteLine(root);

// Replace the value of Top.
root.SetAttributeValue("Top", 10);
Console.WriteLine(root);

// Remove DefaultColor.
root.SetAttributeValue("DefaultColor", null);
Console.WriteLine(root);
' Create an element with no content.
Dim root As XElement = <Root/>

' Add a number of name-value pairs as attributes.
root.SetAttributeValue("Top", 22)
root.SetAttributeValue("Left", 20)
root.SetAttributeValue("Bottom", 122)
root.SetAttributeValue("Right", 300)
root.SetAttributeValue("DefaultColor", "Color.Red")
Console.WriteLine(root)

' Replace the value of Top.
root.SetAttributeValue("Top", 10)
Console.WriteLine(root)

' Remove DefaultColor.
root.SetAttributeValue("DefaultColor", Nothing)
Console.WriteLine(root)

Contoh ini menghasilkan output berikut:

<Root Top="22" Left="20" Bottom="122" Right="300" DefaultColor="Color.Red" />
<Root Top="10" Left="20" Bottom="122" Right="300" DefaultColor="Color.Red" />
<Root Top="10" Left="20" Bottom="122" Right="300" />

Contoh: Menggunakan SetElementValue untuk membuat dan memelihara daftar pasangan nama-nilai

Contoh berikut membuat elemen tanpa elemen turunan. Kemudian ia menggunakan metode SetElementValue untuk membuat dan memelihara daftar pasangan nama-nilai.

// Create an element with no content.
XElement root = new XElement("Root");

// Add a number of name-value pairs as elements.
root.SetElementValue("Top", 22);
root.SetElementValue("Left", 20);
root.SetElementValue("Bottom", 122);
root.SetElementValue("Right", 300);
root.SetElementValue("DefaultColor", "Color.Red");
Console.WriteLine(root);
Console.WriteLine("----");

// Replace the value of Top.
root.SetElementValue("Top", 10);
Console.WriteLine(root);
Console.WriteLine("----");

// Remove DefaultColor.
root.SetElementValue("DefaultColor", null);
Console.WriteLine(root);
' Create an element with no content.
Dim root As XElement = <Root/>

' Add a number of name-value pairs as elements.
root.SetElementValue("Top", 22)
root.SetElementValue("Left", 20)
root.SetElementValue("Bottom", 122)
root.SetElementValue("Right", 300)
root.SetElementValue("DefaultColor", "Color.Red")
Console.WriteLine(root)
Console.WriteLine("----")

' Replace the value of Top.
root.SetElementValue("Top", 10)
Console.WriteLine(root)
Console.WriteLine("----")

' Remove DefaultColor.
root.SetElementValue("DefaultColor", Nothing)
Console.WriteLine(root)

Contoh ini menghasilkan output berikut:

<Root>
  <Top>22</Top>
  <Left>20</Left>
  <Bottom>122</Bottom>
  <Right>300</Right>
  <DefaultColor>Color.Red</DefaultColor>
</Root>
----
<Root>
  <Top>10</Top>
  <Left>20</Left>
  <Bottom>122</Bottom>
  <Right>300</Right>
  <DefaultColor>Color.Red</DefaultColor>
</Root>
----
<Root>
  <Top>10</Top>
  <Left>20</Left>
  <Bottom>122</Bottom>
  <Right>300</Right>
</Root>

Lihat juga