我有这个xml:
<block name="http-www.example.com">
<mapentry tag="AB12">bottlecap</mapentry>
<mapentry tag="CD45">description goes here</mapentry>
<mapentry tag="GH23">12345</mapentry>
<mapentry tag="JK89">54321</mapentry>
</block>
我想根据价值找到“标签”。
所以我想搜索“bottlecap”并让它返回“AB12”
在我看到的所有示例中,人们搜索属性以获取结果,但是在这种类型的xml中,由于节点和属性不明确,因此不可能
我一直在尝试使用-i,但这似乎只适用于节点或属性,但不适用于该值。
xmlstarlet sel -t -i //bottlecap -v "//mapentry[@tag]" "mytest.xml"
有没有办法搜索这个值?
答案 0 :(得分:1)
也许这就是你要追求的目标?
xmlstarlet sel -t -v "//mapentry[. = 'bottlecap']/@tag" "mytest.xml"