eXistに xquery を書いています。
通常、私はこの方法を使用してxmlでアイテムを選択します:
fn:doc($document_name)/root/a
しかし今、文字列変数から xpath を取得したいと考えています。
let $xpath := request:get-parameter("xpath", "")
fn:doc($document_name)/$xpath
もちろん、うまくいきません。私が今見つけた唯一の方法は、次を使用することeval
です:
util:eval(fn:concat("fn:doc($document_name)", $xpath)):)
eval
でも遅くて安全ではないので使いたくありません。
私は次のようなものがあることを知っています:
fn:doc($document_name)/*[name()='node_name']
しかし、ノードの名前だけでなく、パス全体でアイテムを選択したいのですが、使用しようとしましnode-xpath()
たが、同じように使用する方法がわかりませんname()