当前位置: 首页 > 知识库问答 >
问题:

如何在Saxon-HE9.6命令行中使用net.sf.saxon.query设置默认名称空间?

阙阳夏
2023-03-14

正如在如何使用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个答案

亢正德
2023-03-14

使用XQuery,您可以设置声明默认元素命名空间“http://www.w3.org/1999/xhtml”;因此,至少在理论上,如果您以qs查询参数开头-qs:'declare default element namespace“http://www.w3.org/1999/xhtml”;/*:html/*:head/*:title/text()',您应该能够使用//body。我不知道是否可以在shell中编写和转义所有的引号,从长远来看,使用查询文件可能会更容易。

 类似资料:
  • 我的数据有一个ATOM-XML表示,通过Spring MVC web服务返回。我使用JAXB进行序列化,我有许多名称空间,但我希望默认名称空间设置为Atom,不带前缀。下面是我到目前为止在中的内容,但是atom前缀被设置为NS3。 另外,我注意到chrome中显示的名称空间,而Firefox中没有。

  • 问题内容: 我发现在hibernate配置文件中,我们可以设置参数: 现在,我正在使用JPA,我也想这样做。否则,我必须将参数添加到每个@Table注释中,例如: 据我了解,此参数应该在配置的这一部分中: …但是我在Google中找不到它的名字。有任何想法吗? 问题答案: 也不知道为此的JPA属性。但是,您可以仅将Hibernate属性(假设您使用Hibernate作为提供程序)添加为 hiber

  • 我需要使用默认命名空间创建/读取xml文件: 但我得到: 我知道包级元数据,但这在复杂的包结构中不起作用: 我已经定义了模型类,如Address: 客户: 公共字段的父类: 然后是保存具体xml XmlBoo的数据/结构的特定类: XmlFoo: package-info.java包括在两个提到的包example.xml.boo: 和example.xml.foo: 最后是主要方法: 我在这里尝试

  • 我想要一些关于使用saxon对默认命名空间进行xpath解析的信息。我使用Saxon-HE-9.5.1-3.jar在代码中使用xpath 2特性。在类路径中包含saxon库之后,我面临着一个问题,即使用默认名称空间解析XML文档的xpath。 am中的示例XML使用: 有效XPATH: /RESPONSE/HEADER/HITS 以下是它工作和不工作的情况: > "XPATH Works":未指定

  • 当我给出命令时,我得到默认配置文件的以下输出: 然而,当我给一个命名的配置文件的命令时,我得到了一个配置文件名 我曾尝试通过读取'set'CLI命令将默认配置文件命名为,我还尝试了,因为我认为在阅读本页后,变量的命名就是这样的。我之所以要这样做,是因为我想要有两个配置文件,并且我想要使用环境变量在配置文件之间切换。

  • 问题内容: 有没有一种方法可以在python ElementTree中定义默认/无前缀的命名空间?这似乎不起作用… 这也不是: 可以,但是我必须在每个元素前加上前缀: 在OSX上使用Python 3.5。 编辑:如果答案为“否”,您仍然可以获得赏金:-)。我只是想要一个花了很多时间使用它的人的明确“否”。 问题答案: 没有简单的方法可以透明地处理默认名称空间。正如您已经提到的,为空名称空间分配非空