Я пытался использовать xmlstarlet
, но у меня возникли трудности. У меня есть следующий XML-канал.
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<RESPONSE VERSION="L100" REQUEST="show volume-statistics">
<OBJECT basetype="volume-statistics" name="volume-statistics" oid="1" format="rows">
<PROPERTY name="volume-name" display-name="Name">VOL0</PROPERTY>
<PROPERTY name="volume-IOPS" display-name="IOPS">100</PROPERTY>
</OBJECT>
</RESPONSE>
Мне нужно выбрать значение IOPS, где имя равно VOL0
, и вывести только значение объема-IOPS.
Я пробовал следующие команды:
xmlstarlet sel -t -m "RESPONSE/OBJECT/PROPERTY/[@display-name='VOL0']" -v "RESPONSE/OBJECT/PROPERTY[@volume0IOPS] test.xml
Пример вывода
100
xmlstarlet
напечатал бы уведомление о том, что ваше первое выражение XPath недействительно (знака/
перед предикатом быть не должно). - person Jens Erat   schedule 04.03.2014