У меня есть этот 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>
И я хочу найти «тег» на основе значения.
Итак, я хочу найти «бутылку» и вернуть «AB12».
Во всех примерах, которые я видел, люди ищут атрибут, чтобы получить результат, но в этом типе xml это невозможно, поскольку узлы и атрибуты неоднозначны.
Я пытался использовать -i, но, похоже, это работает только с узлом или атрибутом, но не со значением.
xmlstarlet sel -t -i //bottlecap -v "//mapentry[@tag]" "mytest.xml"
Есть ли способ поиска значения?