Comparteix a través de


XAttribute.Value Propiedad

Definición

Obtiene o establece el valor de este atributo.

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

Valor de propiedad

String que contiene el valor de este atributo.

Excepciones

Cuando se establece, el parámetro value es null.

Ejemplos

En el ejemplo siguiente se crea un elemento con un atributo . A continuación, recupera el valor del atributo y, a continuación, lo establece.

Tenga en cuenta que en el ejemplo de Visual Basic se usa la propiedad de atributo 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)  

Este ejemplo produce el siguiente resultado:

content  
new text  

En el ejemplo siguiente se muestra la ventaja de usar los operadores de conversión explícitos para obtener el valor de un atributo que podría no existir:

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

Este ejemplo produce el siguiente resultado:

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  

Comentarios

Puede usar esta propiedad para obtener o establecer el valor de un atributo.

Al establecer esta propiedad, se generarán los Changed eventos y Changing .

Si obtiene el valor y es posible que el atributo no exista, es más conveniente usar los operadores de conversión explícitos y asignar el atributo a un tipo que acepta valores NULL, como string o Nullable<T> de Int32. Si el atributo no existe, el tipo que acepta valores NULL se establece nullen . Antes de usar esta propiedad, debe asegurarse de que el Attribute método no devuelve null.

Se aplica a

Consulte también