xmlstarlet 获取并解析标签间的数据

xmlstarlet to get and parse the data between tags

我想从xml标签获取数据到脚本文件,但是数据是十六进制字符行(& >)需要转换成形式(&& >).

示例:

<project>
<code><shell> if a &amp;&amp; b </shell></code>
</project>

我可以使用命令提取标签

xmlstarlet edit --update 'project/code/shell' --value "$DATA" shell.xml > shell.sh

猫shell.sh

实际:

if a &amp;&amp; b

预计:

if a && b

如何达到预期效果?

要取消转义特殊 XML 个字符:

echo ' if a &amp;&amp; b ' | xmlstarlet unescape

输出:

 if a && b 

cat file.xml | xmlstarlet unescape

输出:

<project>
<code><shell> if a && b </shell></code>
</project>