加入收藏 | 设为首页 | 会员中心 | 我要投稿 北几岛 (https://www.beijidao.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

php – 正则表达式,用于匹配XML节点内出现的“>”,“<”,

发布时间:2021-07-06 05:21:05 所属栏目:大数据 来源: https://www.jb51.cc
导读:我正在尝试使用PHP中的PCRE库编写正则表达式. 我需要正则表达式才能匹配,和存在于任何XML节点的字符串部分中的字符,而不是标记声明本身.输入XML: pnode cnodeThis string contains and and chars./cnode/pnode 我们的想法是搜索并替换这些字符并将它们转换

我正在尝试使用PHP中的PCRE库编写正则表达式.

我需要正则表达式才能匹配&,>和<存在于任何XML节点的字符串部分中的字符,而不是标记声明本身. 输入XML:

<pnode>
  <cnode>This string contains > and < and & chars.</cnode>
</pnode>

我们的想法是搜索并替换这些字符并将它们转换为XML实体等价物.

如果我要将整个XML转换为实体,那么XML将如下所示:

整个XML转换为实体

&lt;pnode&gt;
  &lt;cnode&gt;This string contains &gt; and &lt; and &amp; chars.&lt;/cnode&gt;
&lt;/pnode&gt;

我需要它看起来像这样:

正确的XML

<pnode>
  <cnode>This string contains &gt; and &lt and &amp; chars.</cnode>
</pnode>

我曾尝试使用look-ahaead编写一个正则表达式来匹配这些字符,但我不知道如何使它工作.我的尝试(目前只尝试匹配>符号):

/>(?=[^<]*<)/g

只是为了说清楚我试图解决的XML来自第三方,他们似乎无法修复它的结束,因此我尝试修复它.

解决方法:

垃圾进,垃圾出的经典例子.真正的解决方案是修复损坏的XML导出器,但显然这超出了您的问题范围.听起来你可能需要手动解析XML,在内容上运行htmlentites(),然后再放回XML标签.

(编辑:北几岛)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读