方法 : 属性の値を取得する (LINQ to XML)
更新 : November 2007
このトピックでは、属性の値を取得する方法について説明します。主に 2 つの方法があります。1 つは、XAttribute を目的の型にキャストする方法です。その後、明示的な変換演算子によって、要素または属性のコンテンツが指定した型に変換されます。もう 1 つは、Value プロパティを使用する方法です。ただし、通常はキャストがより適切な方法です。属性を NULL 値が許容される型にキャストすると、存在が不明確な属性の値を取得する場合にコードをより簡単に記述できます。この手法の例については、「方法 : 要素の値を取得する (LINQ to XML)」を参照してください。
使用例
属性の値を取得するには、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
Visual Basic では、統合属性プロパティを使用して属性の値を設定できます。また、統合属性プロパティを使用して存在しない属性の値を設定すると、その属性が作成されます。
Dim root As XElement = <Root Att1="content"/>
root.@Att1 = "new content"
root.@Att2 = "new attribute"
Console.WriteLine(root)
この例では次の出力が生成されます。
<Root Att1="new content" Att2="new attribute" />
属性が名前空間内にある場合にその属性の値を取得する方法を次の例に示します。詳細については、「XML 名前空間の使用」を参照してください。
XNamespace aw = "https://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="https://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