编码& XML中的符号

时间:2012-07-15 19:52:54

标签: xml perl

我的Perl程序正在处理XML文件。有些条目可能包含&符号。并且解析器断开,说:“实体中的名称无效”。

如何在所有不正确的实体中处理文件和编码& -s?

所以,它会是这样的:

<words>text1 & text2</words>  -->  <words>text1 &amp; text2</words>

2 个答案:

答案 0 :(得分:6)

这不是XML文件。如果是XML,则&将写为&amp;。处理非XML文件很困难,因为您无法使用XML解析器。最好修复创建此文件的程序,将其更改为生成格式正确的XML。

答案 1 :(得分:3)

这是棘手的,非平凡的,通常涉及权衡。当我遇到类似的问题时,用&替换/\&[A-Z ]/字符后跟大写字符或空格(&amp;在regexp中)(和“尾随字符”)解决了大多数情况 - 它通常很好,因为你已经通过接受格式不正确的XML输入来加倍努力。