XAttribute.Value Propriedade

Definição

Obtém ou define o valor deste 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 da propriedade

String que contém o valor deste atributo.

Exceções

Ao definir, value é null.

Exemplos

O exemplo a seguir cria um elemento com um atributo . Em seguida, ele recupera o valor do atributo e o define.

Observe que o exemplo do Visual Basic usa a propriedade 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)  

Esse exemplo gera a saída a seguir:

content  
new text  

O exemplo a seguir mostra o benefício de usar os operadores de conversão explícitos para obter o valor de um atributo que pode não 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"))  

Esse exemplo gera a saída a seguir:

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  

Comentários

Você pode usar essa propriedade para obter ou definir o valor de um atributo.

Definir essa propriedade gerará os ChangedChanging eventos e .

Se você estiver obtendo o valor e o atributo pode não existir, é mais conveniente usar os operadores de conversão explícitos e atribuir o atributo a um tipo anulável, como string ou Nullable<T> de Int32. Se o atributo não existir, o tipo anulável será definido como null. Antes de usar essa propriedade, você deve garantir que o Attribute método não retorne null.

Aplica-se a

Confira também