Примечание
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
В этой статье показано, как получить значение атрибутов. Существует два основных способа. Можно привести XAttribute к требуемому типу, после этого оператор явного преобразования преобразует содержимое элемента или атрибута в указанный тип. Иначе можно использовать свойство Value. Однако приведение, как правило, является лучшим подходом. В частности, упрощается написание кода, обеспечивающего получение значения атрибута, который может существовать или не существовать, после приведения атрибута к типу значения, допускающему значение NULL. Примеры этого метода см. в разделе "Как получить значение элемента".
Пример. Использование приведения для получения значения атрибута
Чтобы получить значение атрибута в C#, необходимо привести XAttribute объект к нужному типу. В Visual Basic можно использовать свойство встроенного атрибута для получения значения.
XElement root = new XElement("Root",
new XAttribute("Attr", "abcde")
);
Console.WriteLine(root);
string str = (string)root.Attribute("Attr");
Console.WriteLine(str);
Dim root As XElement = <Root Attr="abcde"/>
Console.WriteLine(root)
Dim str As String = root.@Attr
Console.WriteLine(str)
В примере получается следующий вывод.
<Root Attr="abcde" />
abcde
Пример. Использование приведения для извлечения из XML, который находится в пространстве имен
В следующем примере показано, как получить значение атрибута, если атрибут находится в пространстве имен. Дополнительные сведения см. в обзоре пространств имен.
XNamespace aw = "http://www.adventure-works.com";
XElement root = new XElement(aw + "Root",
new XAttribute(aw + "Attr", "abcde")
);
string str = (string)root.Attribute(aw + "Attr");
Console.WriteLine(str);
Imports <xmlns:aw="http://www.adventure-works.com">
Module Module1
Sub Main()
Dim root As XElement = <aw:Root aw:Attr="abcde"/>
Dim str As String = root.@aw:Attr
Console.WriteLine(str)
End Sub
End Module
В примере получается следующий вывод.
abcde