首页 > 编程语言 >PHP解析带CDATA的XML方法

PHP解析带CDATA的XML方法

时间:2022-10-29 13:33:54浏览次数:38  
标签:XML 解析 CDATA json charlist str PHP

XML文件,如下

<xml>
  <ToUserName><![CDATA[toUser]]></ToUserName>
  <FromUserName><![CDATA[FromUser]]></FromUserName>
  <CreateTime>123456789</CreateTime>
  <MsgType><![CDATA[event]]></MsgType>
  <Event><![CDATA[subscribe]]></Event>
  </xml>

假设$str的内容就是上面这段XML。 

1、解决思路很简单:先去掉”cdata”,然后直接转化为json,然后再解析json,然后直接取对应字符串的值,代码如下:

​​$obj = simplexml_load_string($str, 'SimpleXMLElement', LIBXML_NOCDATA);​​
$eJSON = json_encode($obj);
 $dJSON = json_decode($eJSON);
 $toUserName = $dJSON->ToUserName;//获取"ToUserName"对应的值

 2、使用$result = getElementByTagName("rule")读取文本,再使用str_replace()用空格替换<![CDATA[( && )]]>,最后使用trim(string,charlist)[charlist=""]删除字符串两端的空格!

标签:XML,解析,CDATA,json,charlist,str,PHP
From: https://www.cnblogs.com/Im-Victor/p/16838559.html

相关文章

  • php学习笔记二:第一个php程序 hello world!
    第一个php程序helloworld!前提条件:已经安装xampp和phpstorm xampp安装到了D:\xampp1打开phpstorm2新建项目保存项目到 D:\WorkTest\Php3添加index.php文件4......
  • php学习笔记一:开发环境选择
    1.开发工具使用 PhpStorm  对比过PhpStorm、zendstudio、eclipse和vs.php后还是选择了 PhpStorm,相关优缺点可以网上找找。2.部署工具使用xampp3.帮助文档​​http......
  • php解决跨域
    /public/index.phpif(isset($_SERVER['HTTP_ORIGIN'])){//Decideiftheoriginin$_SERVER['HTTP_ORIGIN']isone//youwanttoallow,andifso:......
  • PHP执行Shell脚本或Bash脚本文件并返回命令输出详情
    PHP执行shell脚本或者Bash脚本文件实例。system和exec函数可能被配置文件禁用,可以通过修改php配置文件删除被禁用的函数。1.通过system函数执行使用实例:<?php$shell="dig......
  • PHP执行Shell脚本或Bash脚本文件并返回命令输出详情
    PHP执行shell脚本或者Bash脚本文件实例。system和exec函数可能被配置文件禁用,可以通过修改php配置文件删除被禁用的函数。1.通过system函数执行使用实例:<?php$shell=......
  • 浅谈PHP设计模式的观察者模式
    简介观察者模式是行为型模式的一种,定义了对象间一对多的关系。当对象的状态发生变化时候,依赖于它的对象会得到通知。适用场景类似触发钩子事件,可做消息通知、框架底层......
  • XmlHelper
    usingSystem;usingSystem.Collections.Generic;usingSystem.Data;usingSystem.IO;usingSystem.Linq;usingSystem.Text;usingSystem.Threading.Tasks;using......
  • python lxml 解析
    1.lxml的安装 pipinstalllxml2.导入lxml的etree库fromlxmlimportetree 示例1fromlxmlimportetreehtml=etree.HTML(response.text)ret_list=htm......
  • Mybatis出现java.io.IOException: Could not find resource XXX.xml异常
    //使用MyBatis提供的Resources类加载mybatis的配置文件Readerreader=Resources.getResourceAsReader("MenuConfig.xml");这条语句中不会写文件路径解决办......
  • php 读取 csv 转数组列表
    我们有个文档需要修改,但是文档列太多,以及数量太大,以至于眼睛看起来很吃力,于是我决定做个简单的转化用脚本读取我想要验证的列的内容是否正确.于是就产生了一个这样将c......