【发布时间】:2023-04-09 15:52:01
【问题描述】:
我正在尝试从xml 文件中删除以下模式:
<![CDATA[]]>
为此,我使用了来自Remove CDATA tags from XML file 的以下sed 命令:
sed -e 's/<![CDATA[//g' | sed -e 's/]]>//g' file.xml
问题是我无法找到这些模式。它正在重新打印带有图案的整个文本。
<text>
<![CDATA[
ethnic minority communities have been in Belfast since the 1930s.]]>
<\text>
以前的问题
【问题讨论】:
-
必须是
sed吗?我问的原因是因为正则表达式不是处理 XML 的好工具。他们充其量只是肮脏的身体黑客。但这也提出了一个问题——你想在这里完成什么?你能给出想要的输出和输入吗? (从有效的 XML 开始就好)。 -
@Sobrique 我不想使用 XML-TWIG 或 python xml 之类的工具,因为在我的文本中我有类似 & 的符号,当我使用它时会导致错误。这就是我使用 sed 或 grep 的原因。我错了吗?我猜
-
如果它导致错误,您的 XML 已损坏,您应该拒绝它。您绝对不应该尝试“修复”损坏的 XML,因为您不会尝试使用另一个程序“修复”损坏的程序代码。
-
好吧,因为我尝试了很多次。如果我在文字游戏中有一个奇怪的符号,我必须重新做所有事情。结构没问题。这是像 和 & 这样的奇怪符号。