我正在尝试确定当标记元素不是常量时如何使用 xmlstarlet 获取 xml 标记和值。
例如,
输入文件:
<?xml version="1.0" encoding="us-ascii"?>
<ST>
<Data3020>
<value>0</value>
<detailType>N/A</detailType>
</Data3020>
<Data3030>
<value>0</value>
<detailType>N/A</detailType>
</Data3030>
<Data3040>
<value>0</value>
<detailType>N/A</detailType>
</Data3040>
<Data3080>
<value>0</value>
<detailType>N/A</detailType>
</Data3080>
<Data3090>
<value>0</value>
<detailType>N/A</detailType>
</Data3090>
</ST>
预期产出:
BoxName|value|detailType|
Data3020|100|N/A|
Data3030|10|N/A|
Data3030|70|N/A|
Data3040|770|N/A|
Data3050|44|N/A|
我尝试了以下方法来分别获取标签名称和值,但我不知道如何组合它们
xmlstarlet sel -t -m "/ST/*" -v "name()" -nl test.xml
Data3020
Data3030
Data3040
Data3080
Data3090
xmlstarlet sel --template --value-of "//ST" test.xml
110
N/A
10
N/A
70
N/A
770
N/A
44
N/A