XAttribute.Value Свойство
Определение
Важно!
Некоторые сведения относятся к предварительной версии продукта, в которую до выпуска могут быть внесены существенные изменения. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.
Возвращает или задает значение этого атрибута.
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
Значение свойства
Объект типа String, содержащий значение этого атрибута.
Исключения
При настройке значение параметра value
- null
.
Примеры
В следующем примере создается элемент с атрибутом . Затем он извлекает значение атрибута и задает его.
Обратите внимание, что в примере Visual Basic используется свойство атрибута 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)
В этом примере выводятся следующие данные:
content
new text
В следующем примере показано преимущество использования операторов явного преобразования для получения значения атрибута, который может не существовать:
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"))
В этом примере выводятся следующие данные:
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
Комментарии
Это свойство можно использовать для получения или задания значения атрибута.
Установка этого свойства приведет к возникновению Changed событий и Changing .
Если вы получаете значение, а атрибут может не существовать, удобнее использовать операторы явного преобразования и присвоить атрибуту тип, допускающий значение NULL, например string
или Nullable<T> .Int32 Если атрибут не существует, то тип, допускающий значение NULL, имеет значение null
. Перед использованием этого свойства необходимо убедиться, что Attribute метод не возвращает null
.