web-dev-qa-db-ja.com

XQuery:要素自体ではなく要素の戻り値

以下を含むXMLドキュメントがあります。

...
<foo>abc</foo>
...

評価した場合

return $xml//foo

戻る

<foo>abc</foo>

代わりにabcだけを取得する方法はありますか?

24
kpozin

はい、text()関数で子テキストを選択します。

return $xml/text()

ただし、$ xml内にタグ構造をネストする場合は注意してください。これは、テキストノードの深さが1レベルだけになるためです。すべてのテキストノードをまとめて、他のXML構造を削除する場合、これは任意の深さになります。

return $xml//text()
30
Harold L

文字列関数を使用して、ノードの文字列コンテンツを取得します。

return string($xml)
18
Oliver Hallam

使用できる要素内のデータのみを返すには:

return data($xml)
8
SeeJay

OSB(Oracle Service Bus)ユーザーは以下の機能を利用できます。

fn-bea:serialize($xml)

0

Xs:string {xs:string($xml/foo)}にキャストします

0
savemaxim