gpt4 book ai didi

xml - 如何使用 SED (linux) 从 XML 文件中删除 CDATA

转载 作者:塔克拉玛干 更新时间:2023-11-02 23:50:38 25 4
gpt4 key购买 nike

我正在尝试从 xml 中删除以下模式文件:

  • <![CDATA[
  • ]]>

为此,我使用了以下 sed来自 Remove CDATA tags from XML file 的命令:

sed -e 's/<![CDATA[//g' | sed -e 's/]]>//g' file.xml

问题是我无法找到这些模式。它正在重新打印带有图案的整个文本。


<text>
<![CDATA[
ethnic minority communities have been in Belfast since the 1930s.]]>
<\text>

以前的问题

最佳答案

我建议多功能 XmlStarlet工具。要删除 CDATA 部分并仅保留文本内容,请使用 this command :

xml fo --omit-decl --nocdata file.xml

输出:

<text>
ethnic minority communities have been in Belfast since the 1930s.
</text>

当删除 CDATA 部分(它本身是一种转义机制)时,XmlStarlet 会自动转义在 XML 中具有特殊含义的符号 (&)。像这样的输入文档,

<text>
<![CDATA[
ethnic minorities & communities have been in Belfast since the 1930s.]]>
</text>

会产生这样的输出:

<text>
ethnic minorities &amp; communities have been in Belfast since the 1930s.
</text>

关于xml - 如何使用 SED (linux) 从 XML 文件中删除 CDATA,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32847816/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com