代码之家  ›  专栏  ›  技术社区  ›  R_SS

xmlstarlet获取和解析标记之间的数据

  •  1
  • R_SS  · 技术社区  · 6 年前

    我希望将数据从xml标记获取到脚本文件,但数据是十六进制字符行( & > )需要转换为表单(&>)。

    例子:

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

    我可以使用命令提取标签

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

    cat外壳。上海

    实际值:

    if a &amp;&amp; b
    

    预期:

    if a && b
    

    如何达到预期的效果?

    1 回复  |  直到 6 年前
        1
  •  1
  •   Cyrus    6 年前

    要取消显示特殊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>