【发布时间】:2013-09-09 21:58:03
【问题描述】:
我想从以下 XML 文件 (list.xml) 中提取(使用 xmlstarlet)
<?xml version="1.0" encoding="UTF-8"?>
<reports>
<report>
<name>b486f8d9</name>
<readableName>Scan1</readableName>
<timestamp>1375757990</timestamp>
</report>
<report>
<name>5f01bd96</name>
<readableName>Scan2</readableName>
<timestamp>1367342696</timestamp>
</report>
</reports>
给定name 的readableName 的值。在上面的示例中,这将是 Scan1,用于查询 b486f8d9。
我找到了a great answer on a very similar problem,但查询的是另一种类型的元素,然后尝试了
xmlstarlet sel -t -c "/reports/report[name=b486f8d9]" list.xml
但这不起作用(空输出)
您能帮我为我的案例构建适当的查询吗?因为我最终想在 bash 中构建一个哈希(键是 name 和值 readableName 和 timestamp)也许有一种更聪明的方法来做到这一点,而不是按照我打算的方式解析文件(= first获取names 的列表,然后查询它们每个的值)?
谢谢!
【问题讨论】:
标签: xml bash hash xml-parsing xmlstarlet