没有不值得去解决的问题,也没有不值得去学习的技术!

xml 数据的解析的重构

删除函数:libxml_disable_entity_loader。不转换为数组。直接使用对象。LIBXML_NOCDATA 表示 将 CDATA 合并为文本节点
1、xml 数据打印如下。如图1
xml 数据打印如下
图1
<pre class="wp-block-syntaxhighlighter-code">

<xml>
	<AppId>
		<![CDATA[wxd98c58b273d21bdf]]>
	</AppId>
	<CreateTime>1626662709</CreateTime>
	<InfoType>
		<![CDATA[component_verify_ticket]]>
	</InfoType>
	<ComponentVerifyTicket>
		<![CDATA[ticket@@@bVAZ8WK0CCTWNowBEfvH7SWIRiPhoeNVczaOnAiPN8fzN2tNrxNK_mzJaUd-WFslGAyl6cSR1ryUinlthRQ0SA]]>
	</ComponentVerifyTicket>
</xml>

</pre>
2、现阶段是将 xml 转换为 数组。代码实现如下。libxml_disable_entity_loader 函数已自 PHP 8.0.0 起被废弃。强烈建议不要依赖本函数。


libxml_disable_entity_loader(true);
$values = Json::decode(Json::encode(simplexml_load_string($xml, 'SimpleXMLElement', LIBXML_NOCDATA)), true);


3、转换为数组后,打印结果如下。如图2
转换为数组后,打印结果如下
图2


Array
(
    [AppId] => wxd98c58b273d21bdf
    [CreateTime] => 1626662709
    [InfoType] => component_verify_ticket
    [ComponentVerifyTicket] => ticket@@@bVAZ8WK0CCTWNowBEfvH7SWIRiPhoeNVczaOnAiPN8fzN2tNrxNK_mzJaUd-WFslGAyl6cSR1ryUinlthRQ0SA
)



4、删除函数:libxml_disable_entity_loader。不转换为数组。直接使用对象。LIBXML_NOCDATA 表示 将 CDATA 合并为文本节点。如图3
删除函数:libxml_disable_entity_loader。不转换为数组。直接使用对象。LIBXML_NOCDATA 表示 将 CDATA 合并为文本节点
图3


$values = simplexml_load_string($xml, 'SimpleXMLElement', LIBXML_NOCDATA);
print_r($values);
echo $values->AppId;
exit;




SimpleXMLElement Object
(
    [AppId] => wxd98c58b273d21bdf
    [CreateTime] => 1626662709
    [InfoType] => component_verify_ticket
    [ComponentVerifyTicket] => ticket@@@bVAZ8WK0CCTWNowBEfvH7SWIRiPhoeNVczaOnAiPN8fzN2tNrxNK_mzJaUd-WFslGAyl6cSR1ryUinlthRQ0SA
)
wxd98c58b273d21bdf


需要长期技术维护或远程问题排查?

我是拥有 15+ 年经验的 PHP / Go 后端工程师,长期关注已有系统维护、Bug 修复、性能优化、服务器排查、WordPress 网站维护和小功能迭代。

如果你的项目遇到以下情况,可以先从一次小问题排查开始合作:

  • ✅ PHP / Laravel / Yii2 老项目无人维护
  • ✅ Go / Gin 后端接口需要排查或优化
  • ✅ WordPress 网站访问慢、报错或插件冲突
  • ✅ Nginx / MySQL / Redis / Linux 服务器异常
  • ✅ CDN / Cloudflare / DNS / HTTPS 配置问题
  • ✅ 需要长期远程技术支持或兼职维护

更多介绍请查看:关于我 & 合作

微信:13980074657
邮箱:shuijingwanwq@gmail.com
Telegram:@shuijingwan
GitHub:https://github.com/shuijingwan

评论

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

这个站点使用 Akismet 来减少垃圾评论。了解你的评论数据如何被处理