GetXmlNamespace 演算子
更新 : 2007 年 11 月
指定した XML 名前空間プレフィックスに対応する XNamespace オブジェクトを取得します。
GetXmlNamespace(xmlNamespacePrefix)
指定項目
- xmlNamespacePrefix
省略可能です。XML 名前空間プレフィックスを示す文字列。指定する場合、この文字列は有効な XML 識別子である必要があります。詳細については、「宣言する XML 要素と属性の名前」を参照してください。プレフィックスを指定しないと、既定の名前空間が返されます。既定の名前空間が指定されていない場合は、空の名前空間が返されます。
戻り値
XML 名前空間プレフィックスに対応する XNamespace オブジェクト。
解説
GetXmlNamespace 演算子は、XML 名前空間プレフィックス xmlNamespacePrefix に対応する XNamespace オブジェクトを取得します。
XML 名前空間プレフィックスは、XML リテラルおよび XML 軸プロパティで直接使用できます。ただし、コードで使用する前に、GetXmlNamespace 演算子を使用して名前空間プレフィックスを XNamespace オブジェクトに変換する必要があります。非修飾要素名を XNamespace オブジェクトに追加することで、完全修飾された XName オブジェクトを取得できます。LINQ to XML の多くのメソッドでは、このオブジェクトが必要です。
使用例
次の例では、ns を XML 名前空間プレフィックスとしてインポートします。その後、この名前空間のプレフィックスを使用して XML リテラルを作成し、修飾名 ns:phone を持つ最初の子ノードにアクセスします。次に、この子ノードを ShowName サブルーチンに渡します。このサブルーチンは、GetXmlNamespace 演算子を使用して修飾名を作成します。その後、ShowName サブルーチンから Ancestors メソッドに修飾名を渡して、親の ns:contact ノードを取得します。
' Place Imports statements at the top of your program.
Imports <xmlns:ns="http://SomeNamespace">
Module GetXmlNamespaceSample
Sub RunSample()
' Create test by using a global XML namespace prefix.
Dim contact = _
<ns:contact>
<ns:name>Patrick Hines</ns:name>
<ns:phone ns:type="home">206-555-0144</ns:phone>
<ns:phone ns:type="work">425-555-0145</ns:phone>
</ns:contact>
ShowName(contact.<ns:phone>(0))
End Sub
Sub ShowName(ByVal phone As XElement)
Dim qualifiedName = GetXmlNamespace(ns) + "contact"
Dim contact = phone.Ancestors(qualifiedName)(0)
Console.WriteLine("Name: " & contact.<ns:name>.Value)
End Sub
End Module
TestGetXmlNamespace.RunSample() を呼び出すと、次のテキストを含むメッセージ ボックスが表示されます。
Name: Patrick Hines