【问题标题】:How to set default namespace with net.sf.saxon.Query in Saxon-HE 9.6 in command line?如何在命令行中的 Saxon-HE 9.6 中使用 net.sf.saxon.Query 设置默认命名空间?
【发布时间】:2015-01-07 18:30:03
【问题描述】:

如线程 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()

应该是一个有效的查询。

有什么想法吗?

【问题讨论】:

    标签: xml xpath saxon


    【解决方案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 中编写和转义所有我不知道的引号是否可能和可行,从长远来看,使用查询文件可能会更容易。

    【讨论】:

      猜你喜欢
      • 2012-03-13
      • 2015-03-05
      • 1970-01-01
      • 2016-03-13
      • 1970-01-01
      • 1970-01-01
      • 2021-05-02
      • 2011-02-21
      相关资源
      最近更新 更多