Note
Access to this page requires authorization. You can try signing in or changing directories.
Access to this page requires authorization. You can try changing directories.
This article shows how to obtain the value of attributes. There are two main ways: You can cast an XAttribute to the desired type; the explicit conversion operator then converts the contents of the element or attribute to the specified type. Alternatively, you can use the Value property. However, casting is generally the better approach. If you cast the attribute to a nullable value type, the code is simpler to write when retrieving the value of an attribute that might or might not exist. For examples of this technique, see How to retrieve the value of an element.
Example: Use a cast to retrieve the value of an attribute
To retrieve the value of an attribute in C#, you cast the XAttribute object to your desired type. In Visual Basic, you can use the integrated attribute property to retrieve the value.
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)
This example produces the following output:
<Root Attr="abcde" />
abcde
Example: Use a cast to retrieve from XML that's in a namespace
The following example shows how to retrieve the value of an attribute if the attribute is in a namespace. For more information, see Namespaces overview.
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
This example produces the following output:
abcde