XAttribute.Value Properti
Definisi
Penting
Beberapa informasi terkait produk prarilis yang dapat diubah secara signifikan sebelum dirilis. Microsoft tidak memberikan jaminan, tersirat maupun tersurat, sehubungan dengan informasi yang diberikan di sini.
Mendapatkan atau menetapkan nilai atribut ini.
public:
property System::String ^ Value { System::String ^ get(); void set(System::String ^ value); };
public string Value { get; set; }
member this.Value : string with get, set
Public Property Value As String
Nilai Properti
yang String berisi nilai atribut ini.
Pengecualian
Saat mengatur, value
adalah null
.
Contoh
Contoh berikut membuat elemen dengan atribut . Kemudian mengambil nilai atribut, lalu mengaturnya.
Perhatikan bahwa contoh Visual Basic menggunakan properti atribut XML.
XElement root = new XElement("Root",
new XAttribute("Att", "content")
);
XAttribute att = root.FirstAttribute;
Console.WriteLine(att.Value);
att.Value = "new text";
Console.WriteLine(att.Value);
Dim root As XElement = <Root Att="content"/>
Console.WriteLine(root.@Att)
root.@Att = "new text"
Console.WriteLine(root.@Att)
Contoh ini mencetak output berikut:
content
new text
Contoh berikut menunjukkan manfaat menggunakan operator konversi eksplisit untuk mendapatkan nilai atribut yang mungkin tidak ada:
XElement root = new XElement("Root",
new XAttribute("Att1", "attribute 1 content"),
new XAttribute("Att2", "2")
);
// The following assignments demonstrate why it is easier to use
// casting when the attribute might or might not exist.
string c1 = (string)root.Attribute("Att1");
Console.WriteLine("c1:{0}", c1 == null ? "attribute does not exist" : c1);
int? c2 = (int?)root.Attribute("Att2");
Console.WriteLine("c2:{0}", c2 == null ? "attribute does not exist" : c2.ToString());
string c3 = (string)root.Attribute("Att3");
Console.WriteLine("c3:{0}", c3 == null ? "attribute does not exist" : c3);
int? c4 = (int?)root.Attribute("Att4");
Console.WriteLine("c4:{0}", c4 == null ? "attribute does not exist" : c4.ToString());
Console.WriteLine();
// The following assignments show the necessary code when using
// the value property when the attribute might or might not exist.
XAttribute att1 = root.Attribute("Att1");
string v1;
if (att1 == null)
v1 = null;
else
v1 = att1.Value;
Console.WriteLine("v1:{0}", v1 == null ? "attribute does not exist" : v1);
XAttribute att2 = root.Attribute("Att2");
int? v2;
if (att2 == null)
v2 = null;
else
v2 = Int32.Parse(att2.Value);
Console.WriteLine("v2:{0}", v2 == null ? "attribute does not exist" : v2.ToString());
XAttribute att3 = root.Attribute("Att3");
string v3;
if (att3 == null)
v3 = null;
else
v3 = att3.Value;
Console.WriteLine("v3:{0}", v3 == null ? "attribute does not exist" : v3);
XAttribute att4 = root.Attribute("Att4");
int? v4;
if (att4 == null)
v4 = null;
else
v4 = Int32.Parse(att4.Value);
Console.WriteLine("v4:{0}", v4 == null ? "attribute does not exist" : v4.ToString());
Dim root As XElement = <Root Att1="attribute 1 content" Att2="2"/>
' The following assignments demonstrate why it is easier to use
' casting when the attribute might or might not exist.
Dim c1 As String = CStr(root.Attribute("Att1"))
Console.WriteLine("c1:{0}", IIf(c1 Is Nothing, "attribute does not exist", c1))
Dim c2 As Nullable(Of Integer) = CType(root.Attribute("Att2"), Nullable(Of Integer))
Console.WriteLine("c2:{0}", IIf(c2.HasValue, c2, "attribute does not exist"))
Dim c3 As String = CStr(root.Attribute("Att3"))
Console.WriteLine("c3:{0}", IIf(c3 Is Nothing, "attribute does not exist", c3))
Dim c4 As Nullable(Of Integer) = CType(root.Attribute("Att4"), Nullable(Of Integer))
Console.WriteLine("c4:{0}", IIf(c4.HasValue, c4, "attribute does not exist"))
Console.WriteLine()
' The following assignments show the necessary code when using
' the value property when the attribute might or might not exist.
Dim att1 As XAttribute = root.Attribute("Att1")
Dim v1 As String
If att1 Is Nothing Then
v1 = Nothing
Else
v1 = att1.Value
End If
Console.WriteLine("v1:{0}", IIf(v1 Is Nothing, "attribute does not exist", v1))
Dim att2 As XAttribute = root.Attribute("Att2")
Dim v2 As Nullable(Of Integer)
If att2 Is Nothing Then
v2 = Nothing
Else
v2 = Int32.Parse(att2.Value)
End If
Console.WriteLine("v2:{0}", IIf(v2.HasValue, v2, "attribute does not exist"))
Dim att3 As XAttribute = root.Attribute("Att3")
Dim v3 As String
If att3 Is Nothing Then
v3 = Nothing
Else
v3 = att3.Value
End If
Console.WriteLine("v3:{0}", IIf(v3 Is Nothing, "attribute does not exist", v3))
Dim att4 As XAttribute = root.Attribute("Att4")
Dim v4 As Nullable(Of Integer)
If att4 Is Nothing Then
v4 = Nothing
Else
v4 = Int32.Parse(att4.Value)
End If
Console.WriteLine("v4:{0}", IIf(v4.HasValue, v4, "attribute does not exist"))
Contoh ini mencetak output berikut:
c1:attribute 1 content
c2:2
c3:attribute does not exist
c4:attribute does not exist
v1:attribute 1 content
v2:2
v3:attribute does not exist
v4:attribute does not exist
Keterangan
Anda dapat menggunakan properti ini untuk mendapatkan atau mengatur nilai atribut.
Mengatur properti ini akan meningkatkan Changed peristiwa dan Changing .
Jika Anda mendapatkan nilai dan atribut mungkin tidak ada, lebih mudah untuk menggunakan operator konversi eksplisit, dan menetapkan atribut ke jenis nullable seperti string
atau Nullable<T> dari Int32. Jika atribut tidak ada, maka jenis nullable diatur ke null
. Sebelum menggunakan properti ini, Anda harus memastikan bahwa Attribute metode tidak mengembalikan null
.