Я пишу простой скрипт bash для анализа некоторого xml. Я использовал sed и awk, но я думаю, что xmllint лучше подходит.Как вывести несколько строк с помощью xmllint и xpath
К сожалению, я совершенно не знаком с xpath, поэтому я действительно сражаюсь.
Я пытаюсь взять следующий XML:
<?xml version="1.0" encoding="UTF-8"?>
<releaseNote>
<name>APPLICATION_ercc2</name>
<change>
<date hour="11" day="10" second="21" year="2013" month="0" minute="47"/>
<submitter>Automatically Generated</submitter>
<description>ReleaseNote Created</description>
</change>
<change>
<version>2</version>
<date hour="11" day="10" second="25" year="2013" month="1" minute="47"/>
<submitter>fred.bloggs</submitter>
<description> first version</description>
<install/>
</change>
<change>
<version>3</version>
<date hour="12" day="10" second="34" year="2013" month="1" minute="2"/>
<submitter>fred.bloggs</submitter>
<description> tweaks</description>
<install/>
</change>
<change>
<version>4</version>
<date hour="15" day="10" second="52" year="2013" month="1" minute="38"/>
<submitter>fred.bloggs</submitter>
<description> fixed missing image, dummy user, etc</description>
<install/>
</change>
<change>
<version>5</version>
<date hour="17" day="10" second="31" year="2013" month="1" minute="40"/>
<submitter>fred.bloggs</submitter>
<description> fixed auth filter and added multi opco stuff</description>
<install/>
</change>
.....
и обработать его, чтобы пройти в «3» в качестве переменной в скрипте XPATH и вывести что-то как это:
4 fred.bloggs 10/1/2013 15:38 fixed missing image, dummy user, etc
5 fred.bloggs 10/1/2013 17:40 fixed auth filter and added multi opco stuff
другими словами, сложное сочетание содержимого каждого узла, где значение версии больше, чем, например, 3.
Если бы не слышал о XMLStarlet. Интересно. – LarsH