我有这个 xml 文件(已截断)
<adddata dn="articulo">
<attr name="code">
<value>34839473</value>
<value>12263522</value>
</attr>
</adddata>
我想将多值行更新/替换为 1,值之间用“---”分隔。像这样:
<attr name="code">
<value>34839473---12263522</value>
</attr>
我尝试过:
xmlstarlet ed -u "//attr[@name='code']" -x 'concat(value[1], "---", value[2])'`
并导致:
<attr name="code">2312341---2348444</attr>
但我不知道如何在行中包含
"<value>"
和"</value>"
有什么建议吗?
提前致谢
我建议:
xmlstarlet edit \
--omit-decl \
--update '//value[1]' --expr 'concat(//value[1], "---", //value[2])' \
--delete '//value[2]' file.xml
输出:
<adddata dn="articulo">
<attr name="code">
<value>34839473---12263522</value>
</attr>
</adddata>