我正在尝试在xquery中(使用basex)做类似的事情
let $node := doc('doc.xml')//*:root
let $xpath := "descendant::*:path/*:to/*:node"
let $val := $node//$xpath
是可能的
let $val := functx:dynamic-path($node, $xpath)
但是这个不允许太多
该功能仅支持以@开头的元素名称和属性名称,以单斜杠分隔。可以选择为名称加上前缀,但是名称必须使用与输入文档中相同的前缀。它不支持谓词,其他轴或其他节点类型。请注意,大多数处理器都具有扩展功能,该功能可以更完整地动态评估路径表达式。
您知道其他任何有帮助的功能吗?
答案 0 :(得分:2)
看http://docs.basex.org/wiki/XQuery_Module#xquery:eval:
let $node := doc('doc.xml')//*:root
let $xpath := "descendant::*:path/*:to/*:node"
let $val := xquery:eval($path, map { '' : $node })