繁体   English   中英

如何在Saxon CLI中定义XML命名空间,以便我可以查询该命名空间中的内容?

[英]How to define XML namespace in Saxon CLI such that I can query on things in that namespace?

我正在尝试使用Saxon CLI读取Maven POM文件的版本,如下所示:

java -cp Saxon-HE-9.7.0-4.jar net.sf.saxon.Query -s:./pom.xml -qs:/project/version \!method=text

文件pom.xml如下所示:

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0">
    <modelVersion>4.0.0</modelVersion>
    <groupId>foo</groupId>
    <artifactId>bar</artifactId>
    <packaging>pom</packaging>
    <name>baz</name>
    <version>0.0.1-SNAPSHOT</version>
</project>

我收到错误,因为我正在指定默认命名空间。 如果我省略该命名空间声明( xmlns="http://maven.apache.org/POM/4.0.0" ),则查询有效。 我从Saxon文档中收集到了我需要做的事情,比如可能定义命名空间处理程序,但我发现我突然潜入XML命名空间esoterica。 有人知道如何在Saxon命令行上使用一个简单的选项吗?

我倾向于使用命令行中的-qs:/*:project/*:version ,因为它适用于任何命名空间。

否则你需要使用https://www.w3.org/TR/xquery-30/#id-default-namespace,但使用引号和命令行解释器可能会很麻烦。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM