【发布时间】:2012-08-28 05:07:37
【问题描述】:
我正在从数据库中获取一个 xml 数据作为字符串。 我想在xml标签之间用<替换
<smallelement> a<b </smallelement>
替换为
<smallelement> a < b </smallelement>
i want to replace < with <
如果我使用字符串替换功能
$content = str_replace("<","<",$content);
it replaces element tag <smallelement> also like < ;smallelement.
<smallelement> a<b </smallelement>
如何使用正则表达式替换 xml 标签中的内容或有其他方法来实现这一点?
【问题讨论】:
-
先解析你的xml,然后使用
htmlentities. -
<smallelement> a<b </smallelement>不是有效的 XML;您应该使用已替换的实体来存储 XML,或者将这些内容用 CDATA 区域括起来。 -
问题是我正在研究一个已经存在的结构,该结构具有上述格式的大量数据。因此我无法改变它。那么有没有其他方法可以实现呢?
-
您正在处理的数据充其量是模棱两可的。范围总是在
smallelement的开始/结束标记之间,还是在任何开始/结束标记对之间?除了<,你还需要处理什么吗?您是否必须处理嵌套标签序列,例如<xx> a < b <yyy> ddd </yyy> </xxx>?如果它受到严格限制,您也许可以应付——但首先让数据库存储格式错误的伪 XML 是可笑的。 -
也许这个答案也有帮助:stackoverflow.com/a/2287467/1059457