Freigeben über


XAttribute.Value Eigenschaft

Definition

Ruft den Wert des Attributs ab oder legt diesen fest.

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

Eigenschaftswert

Ein String-Objekt, das den Wert dieses Attributs enthält.

Ausnahmen

Wenn dieser Ausnahmetyp festgelegt wird, ist valuenull.

Beispiele

Im folgenden Beispiel wird ein -Element mit einem -Attribut erstellt. Anschließend wird der Wert des Attributs abgerufen und dann festgelegt.

Beachten Sie, dass im Visual Basic-Beispiel die XML-Attributeigenschaft verwendet wird.

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)  

Dieses Beispiel erzeugt die folgende Ausgabe:

content  
new text  

Das folgende Beispiel zeigt den Vorteil der Verwendung der expliziten Konvertierungsoperatoren zum Abrufen des Werts eines Attributs, das möglicherweise nicht vorhanden ist:

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

Dieses Beispiel erzeugt die folgende Ausgabe:

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  

Hinweise

Sie können diese Eigenschaft verwenden, um den Wert eines Attributs abzurufen oder festzulegen.

Wenn Sie diese Eigenschaft festlegen, werden die Changed Ereignisse und Changing ausgelöst.

Wenn Sie den Wert abrufen und das Attribut möglicherweise nicht vorhanden ist, ist es praktischer, die expliziten Konvertierungsoperatoren zu verwenden und das Attribut einem Nullable-Typ wie string oder Nullable<T> von Int32zuzuweisen. Wenn das Attribut nicht vorhanden ist, wird der Nullable-Typ auf nullfestgelegt. Bevor Sie diese Eigenschaft verwenden, müssen Sie sicherstellen, dass die Attribute -Methode nicht zurückgibt null.

Gilt für:

Weitere Informationen