没有 --xpath 选项的 xmllint 字符串

Posted

技术标签:

【中文标题】没有 --xpath 选项的 xmllint 字符串【英文标题】:xmllint string without --xpath option 【发布时间】:2019-02-10 13:20:58 【问题描述】:

我有一个看起来像这样的 xml:

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<customer>
    <role>probe</role>
    <ipconfig>yes</ipconfig>
    <hostname>test</hostname>
    <ip>192.168.2.123</ip>
    <gateway>192.168.2.1</gateway>
    <subnet>255.255.254.0</subnet>
</customer>

我在 CentOS7 下有脚本来获取值:

role="$(xmllint --xpath "string(//role)" "$xml_path")"

这很好用。

现在我必须在 CentOS 6 环境下使用相同的。没有 --xpath 支持,我无法安装它。

实现相同目标的最简单和最简单的方法是什么?

【问题讨论】:

【参考方案1】:

这可能有效:

role=$(echo "cat /customer/role/text()" | xmllint --shell file.xml | grep -v '^/')

输出到变量role:

探测

【讨论】:

以上是关于没有 --xpath 选项的 xmllint 字符串的主要内容,如果未能解决你的问题,请参考以下文章

如何将环境变量传递给传递给xmllint的命令?

使用xmllint从XML节点获取URL,添加新行

xmllint:如何使用本地 DTD 文件验证 XML

python:使用xmllint时,子进程通信等待无限期

使用awk或sed卷曲URL中的部分

使用 XSD 时 xmllint 验证错误“未找到 DTD”