根据Saxon的documentation,
java net.sf.saxon.Query -qs:doc('a.xml')// p 1选择内部元素 当前目录中的文件a.xml。
我正试图从bash脚本中做到这一点:
java net.sf.saxon.Query -qs:doc"('myFile.xml')"/rootElt/@myAtt
但是,我收到以下错误:XTDE1162: Relative URI passed to document() function (myFile.xml); but no base URI is available
根据文档,这不应该发生:
静态基URI(在调用doc()函数时使用)是 当前目录。
我尝试过使用绝对URI,但令人惊讶的是,我仍然得到完全相同的错误消息。
我可以使用一些帮助吗?
答案 0 :(得分:2)
解决。传递查询字符串时,没有基本URI(文件系统中没有包含查询的资源),因此传递一个resolve-uri()
作为第二个参数:
-qs:"doc(resolve-uri('myFile.xml', 'file:$PWD/'))/rootElt/@myAtt/xs:string(.)"
在我看来,Saxonica应该使用这个细节来更新命令行选项-qs
的文档(可能需要一段时间才能自行解决这个问题)。