Я пытаюсь использовать xmllint для извлечения данных из тега, если в предыдущем теге существует условие.Я знаю, что, возможно, есть лучшие инструменты, но я ограничен стандартными командами xmllint и / или системой, такими как sed, awk и т. Д.
xml file:
<?xml version="1.0" encoding="UTF-8"?>
<MainGroup>
<MainGroupEntry name="aaa" function="xxx">
<EntryType type="AAA"/>
<EntryDescription>Capture This A</EntryDescription>
<EntryRandomList>Just,a,random,list,of,things,to,discard</EntryRandomList>
</MainGroupEntry>
<MainGroupEntry name="aaa" function="xxx">
<EntryType type="AAA"/>
<EntryDescription>Capture This A</EntryDescription>
<EntryRandomList>Just,a,random,list,of,things,to,discard</EntryRandomList>
</MainGroupEntry>
<MainGroupEntry name="bbb" function="yyy">
<EntryType type="BBB"/>
<EntryDescription>Capture This B</EntryDescription>
<EntryRandomList>Just,a,random,list,of,things,to,discard</EntryRandomList>
</MainGroupEntry>
<MainGroupEntry name="bbb" function="yyy">
<EntryType type="BBB"/>
<EntryDescription>Capture This B</EntryDescription>
<EntryRandomList>Just,a,random,list,of,things,to,discard</EntryRandomList>
</MainGroupEntry>
</MainGroup>
What I'm "я пытаюсь сделать следующее: для каждого Entry type="AAA"
выведите сопровождающее EntryDescription
. Я пробовал разные варианты: xmllint --xpath '//MainGroupEntry/EntryType[@type="AAA"]/EntryDescription/text()' my_file.xml
, но я всегда получаю пустой набор XPath. Если я уроню, пытаясь получить текст описания, я могупосмотрите записи, которые соответствуют моему условию типа:
xmllint --xpath '//MainGroupEntry/EntryType[@type="AAA"]' my_file.xml
<EntryType type="AAA"/><EntryType type="AAA"/>
Я просто не могу понять, как получить текст только из поля «Описание». Мысли?