2

私は次の目標を持っています。あらゆる種類の Xquery または XPath を実行するときに、どのドキュメントに自分のデータが含まれているかを知りたいです。つまり、特定のクエリの結果データを提供するすべてのドキュメントが必要です。私はこれを eXist-db 環境でやろうとしていますが、Xquery レベルで何かあるはずです。

op:context-document() 演算子が必要な機能を持っているようですが、演算子としては使用できません。fn:document-uri もそのトリックを行いません。その $arg はドキュメント ノードでなければならず、そうでない場合は空のシーケンスを返します。

何か考えはありますか?すべての支援は高く評価されています。

4

2 に答える 2

1

fn:base-uri()が役立つ場合があります。ノードのベースURIプロパティを返します。

for $d in doc('....')/your[query]
return base-uri($d)

また、これを使用して、特定のタイプのドキュメントをフィルタリングすることもできます。

collection('/path/to/documents')[ends-with(base-uri(), '.xml')]
于 2012-09-03T21:05:35.573 に答える
1

標準の XPath/XQuery 関数を使用しますcollection()

たとえば、Saxon を使用する場合:

collection('file:///a/b/c/d?select=*.xml')[yourBooleanExpression]

/a/b/c/dファイルシステムのディレクトリに存在し、基準を満たす (yourBooleanExpressionに評価されるtrue())すべての XML ドキュメントのドキュメント ノードを選択します。

于 2012-09-03T20:48:52.090 に答える