如何在命令行中使用Saxon-HE 9.6中的net.sf.saxon.Query设置默认命名空间?

时间:2015-01-07 18:30:03

标签: xml xpath saxon

如线程How to parse HTML using XPath with Saxon-HE in command line?所示,我尝试使用Saxon和XPath查询HTML。

到目前为止,我在Linux shell中尝试了什么:

java -classpath "./tagsoup-1.2.jar:./saxon9he.jar" \
    net.sf.saxon.Query \
   -x:org.ccil.cowan.tagsoup.Parser \
   -s:https://stackoverflow.com/questions/27826172 \
   -qs:'/*:html/*:head/*:title/text()'

它有效,但我想设置一个默认命名空间,以便能够查询没有前缀或通配符的HTML文件,例如:

/html/head/title/text()

应该是有效的查询。

有什么想法吗?

1 个答案:

答案 0 :(得分:1)

使用XQuery,您可以设置declare default element namespace "http://www.w3.org/1999/xhtml";,因此至少在理论上如果您启动qs查询参数-qs:'declare default element namespace "http://www.w3.org/1999/xhtml";/*:html/*:head/*:title/text()',您应该可以使用//body。在shell中编写和转义所有那些我不知道的引用是否可行和可行,从长远来看,使用查询文件可能会更容易。