我有一个pom.xml
as such
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.qualtrics.sujitv</groupId>
<artifactId>maven-test</artifactId>
<packaging>jar</packaging>
<version>1.2.3.4</version>
<name>Test app</name>
<url>http://maven.apache.org</url>
</project>
我正在尝试使用 xmllint 来获取版本,但是当我运行时
xmllint --xpath 'string(project/version)' ./pom.xml
它什么也不输出
由于您的 XML 使用名称空间,因此没有真正好的方法来做到这一点。对于直接 xpath 查询,如果可以安全地忽略名称空间,您可以执行以下操作:
$ xmllint --xpath '/*[local-name()="project"]/*[local-name()="version"]/text()' pom.xml
如果您想以“正确”的方式执行此操作,则需要启动 shell 来设置名称空间并输出所需的值。不幸的是,您必须清除输出中的提示。
$ xmllint --shell pom.xml <<< 'setns ns=http://maven.apache.org/POM/4.0.0
cat /ns:project/ns:version/text()'
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)