【发布时间】:2015-10-12 20:19:27
【问题描述】:
我不断尝试在字符串中搜索两个值。我知道我必须在 PHP 中使用以下命令:
preg_match_all
它也必须被转义。所以我尝试为此创建一个过滤器。
原始代码:
<![CDATA[312.09999999999997]]></var><var n='destinationX' t='n'><![CDATA[510.75]]>
我的实际代码:
if (preg_match_all("\<!\[CDATA\[([0-9a-z_-]+)\]\]\>\</var\>\<var n=\'destinationY\' t=\'n\'\>\<\!\[CDATA\[([0-9a-z_-]+)\]\]/i>", $packets, $matches) )
遗憾的是它不会返回CDATA 中包含的数据。所以我试图从这个字符串中获取以下信息:
比赛 1:312.09999999999997
第 2 场比赛:510.75
有人知道我做错了什么吗?
【问题讨论】:
-
CData 是否总是包含十进制数?
-
是的,cdata 应该始终包含 cdata
-
如果 XML 创建者决定不使用
CDATA怎么办? -
您是要检查是否存在或捕获?
标签: php xml-parsing preg-match-all