gpt4 book ai didi

xml - 从 unix 命令行进行基本 xml 解析的最简单方法

转载 作者:数据小太阳 更新时间:2023-10-29 01:42:13 30 4
gpt4 key购买 nike

我正在搜索具有特定属性的 xml 文件。例如,包含以下模式的文件:

<param-value>
<name>Hosts</name>
<description>some description</description>
<value></value>
</param-value>

对于这样的文件,我想解析另一个标签的值,例如:

<param-value>
<name>Roles</name>
<description>some description</description>
<value>asdf</value>
</param-value>

并打印出文件名和“asdf”。从命令行完成此操作的最简单方法是什么?

我想到的一种方法是使用带有 -l 选项的 grep 来过滤掉匹配的文件,然后使用 xargs grep 来提取 Roles 的值。但是,grep 不适用于多行正则表达式。我看到另一个问题表明它可以使用 -Pzo 选项来完成,但在我的案例中没有任何运气让它工作。有没有更简单的方法?

最佳答案

以下 linux 命令使用 XPath 访问 XML 文件中的指定值

for xml in `find . -name "*.xml"`
do
echo $xml `xmllint --xpath "/param-value/value/text()" $xml`| awk 'NF>1'
done

匹配 XML 文件的示例输出:

./test1.xml asdf
./test4.xml 1234

关于xml - 从 unix 命令行进行基本 xml 解析的最简单方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9200462/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com