質問

指定された名前空間 (接頭辞) を持つドキュメント内の最上位の要素を選択したいと考えています。

すなわち:/html/body (XHTML 名前空間内) で始まるか、特定の名前空間内のいくつかの要素の 1 つで始まる XML ドキュメントがあります。事実上、/html/body を取り除き、本文の内容またはルートの名前空間要素全体を返すだけです。

役に立ちましたか?

解決

XPath 2.0 および XQuery 1.0 では、次のコマンドを使用して名前空間プレフィックスに対してテストできます。 スコープ内のプレフィックス() 述語内の関数。例えば

//*[in-scope-prefixes(.)='html']

v2 を使用できない場合、XPath 1.0 では、 名前空間-uri() 名前空間自体に対してテストする関数。例えば

//*[namespace-uri()='http://www.w3c.org/1999/xhtml']

他のヒント

必要な XPath 式は次のとおりです。

/html:html/html:body/node()|/foo:*

ここで、「html」プレフィックスは XHTML 名前空間にマップされ、「foo」プレフィックスはターゲットの名前空間にマップされます。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top