eXist-db:当使用doc函数获取xml时,xpath不返回值

时间:2016-06-03 11:40:33

标签: xpath xquery exist-db

基本上,这会返回空标签:

let $report := fn:doc('/db/junitReports/Report.xml')
return <label>{$report//testResult/text()}</label>

report.xml将:

<junit>
    <interfaceName>InterfaceName</interfaceName>
    <reportDate>2016-06-01</reportDate>
    <testResult>failure</testResult>
</junit> 

但是,当未使用xPath到特定元素时,它显示整个xml:

let $report := fn:doc('/db/junitReports/Report.xml')
return <label>{$report}</label>

这意味着可以从数据库访问该文件。

我找到了一个帖子,通过将现有数据库更新到更高版本来修复它,但我是最新的2.1.2

1 个答案:

答案 0 :(得分:0)

我在xPath中添加了一个“*”命名空间来解决问题:

return <label>{fn:doc(fn:concat($collection, '/', $child))//*:testResult/text()}</label>