【问题标题】:Get pom.xml version with xmllint使用 xmllint 获取 pom.xml 版本
【发布时间】:2017-04-28 03:15:52
【问题描述】:

我有一个 pom.xml 这样的

<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

什么都不输出

【问题讨论】:

    标签: bash xpath xmllint


    【解决方案1】:

    由于您的 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()'
    

    【讨论】:

      猜你喜欢
      • 2021-02-18
      • 1970-01-01
      • 2017-01-10
      • 2018-07-13
      • 2023-03-20
      • 1970-01-01
      • 2021-03-31
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多