Я пытаюсь выбрать один узел с помощью xmlstarlet из следующего примера XML:
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<?xml-stylesheet type="text/xsl" href="key.xsl" ?>
<tables>
<tableset>
<table name="table1">
<row>
<fld name="fileName">
<strval><![CDATA[/my/XYZ/file1]]></strval>
</fld>
<fld name="fileName">
<strval><![CDATA[/my/XYZ/file2]]></strval>
</fld>
<fld name="fileName">
<strval><![CDATA[/my/other/XYZ/file3]]></strval>
</fld>
<fld name="worksBecauseUnique">
<strval><![CDATA[/XYZ/unique]]></strval>
</fld>
</row>
</table>
</tableset>
</tables>
Я пытаюсь создать ассоциативный массив в bash... Как выбрать один узел или выполнить итерацию по нескольким узлам с помощью xmlstarlet?
Я пытаюсь что-то вроде следующего до сих пор, который не работает:
xmlstarlet sel -t -v "//tables/tableset/table/row/fld[@name=\"fileName\"]/strval[0]" xmlfile.xml
Надеясь получить "/my/XYZ/file1", однако это не работает.
xmlstarlet pyx
, а неxmlstarlet ed
; это гораздо лучший инструмент для кругового обхода. - person Charles Duffy   schedule 05.08.2015