相关疑难解决方法(0)

脚本编写:在 XML 文件的标记中提取值最简单的方法是什么?

我想读取 pom.xml(Maven 的“项目对象模型”)并提取版本信息。下面是一个例子:

<?xml version="1.0" encoding="UTF-8"?><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.mycompany</groupId>
    <artifactId>project-parent</artifactId>
    <name>project-parent</name>
    <version>1.0.74-SNAPSHOT</version>
    <dependencies>
        <dependency>
        <groupId>com.sybase.jconnect</groupId>
        <artifactId>jconnect</artifactId>
        <version>6.05-26023</version>
    </dependency>
    <dependency>
        <groupId>joda-time</groupId>
        <artifactId>joda-time</artifactId>
        <version>1.5.2</version>
    </dependency>
    <dependency>
        <groupId>com.sun.jdmk</groupId>
        <artifactId>jmxtools</artifactId>
        <version>1.2.1</version>
    </dependency>
    <dependency>
        <groupId>org.easymock</groupId>
        <artifactId>easymock</artifactId>
        <version>2.4</version>
    </dependency>       
</dependencies>
</project>
Run Code Online (Sandbox Code Playgroud)

如何从上面提取版本“1.0.74-SNAPSHOT”?

希望能够使用简单的 bash 脚本 sed 或 awk 来做到这一点。否则首选简单的python。

编辑

  1. 约束

    linux box 在公司环境中,所以我只能使用已经安装的工具(不是说我不能请求诸如 xml2 之类的实用程序,但我必须经历很多繁文缛节)。一些解决方案非常好(已经学习了一些新技巧),但由于环境限制,它们可能不适用

  2. 更新的 xml 列表

    我在原始列表中添加了依赖项标签。这将显示一些 hacky 解决方案在这种情况下可能不起作用

  3. 发行版

    我使用的发行版是 RHEL4

linux unix xml bash python

14
推荐指数
4
解决办法
7万
查看次数

是否有用于解析 RedHat 上可用的 xml 文件的本机工具?

是否有任何类似于 xpath 的实用程序来解析 RedHat 服务器上本机可用的 XML 文件?

其他地方已经回答了类似的问题,但服务器上没有列出任何工具。

更新: xmllint已安装,并man xmllint表明它可以解析 xml 文件,但不清楚这是否使我能够从特定节点提取字符串。

xml redhat-enterprise-linux

9
推荐指数
2
解决办法
2万
查看次数

标签 统计

xml ×2

bash ×1

linux ×1

python ×1

redhat-enterprise-linux ×1

unix ×1