使用 xmlstarlet 模式匹配元素标签

问题描述 投票:0回答:0

我正在尝试确定当标记元素不是常量时如何使用 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
xml dynamic tags element xmlstarlet
© www.soinside.com 2019 - 2024. All rights reserved.