如何在命令行中的 Saxon-HE 9.6 中使用 net.sf.saxon.Query 设置默认名称空间?
How to set default namespace with net.sf.saxon.Query in Saxon-HE 9.6 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: \
-qs:'/*:html/*:head/*:title/text()'
它有效,但我想设置一个 默认命名空间 以便能够查询没有前缀或通配符的 HTML 文件,例如:
/html/head/title/text()
应该是一个有效的查询。
有什么想法吗?
使用 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 中编写和转义所有我不知道的引号是否可能和可行,在长 运行.
中使用查询文件可能更容易
如线程
到目前为止,我在 Linux shell 中尝试的内容:
java -classpath "./tagsoup-1.2.jar:./saxon9he.jar" \
net.sf.saxon.Query \
-x:org.ccil.cowan.tagsoup.Parser \
-s: \
-qs:'/*:html/*:head/*:title/text()'
它有效,但我想设置一个 默认命名空间 以便能够查询没有前缀或通配符的 HTML 文件,例如:
/html/head/title/text()
应该是一个有效的查询。
有什么想法吗?
使用 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 中编写和转义所有我不知道的引号是否可能和可行,在长 运行.