XAttribute.Value Eigenschaft
Definition
Wichtig
Einige Informationen beziehen sich auf Vorabversionen, die vor dem Release ggf. grundlegend überarbeitet werden. Microsoft übernimmt hinsichtlich der hier bereitgestellten Informationen keine Gewährleistungen, seien sie ausdrücklich oder konkludent.
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 value
null
.
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 null
festgelegt. Bevor Sie diese Eigenschaft verwenden, müssen Sie sicherstellen, dass die Attribute -Methode nicht zurückgibt null
.