$xml_data = file_get_contents('a.xml');

$simplexml = simplexml_load_string($xml_data);

print_r($simplexml);

?>

结果

SimpleXMLElement Object

(

[show] => Array

(

[0] =>SimpleXMLElement Object

(

[name] => The Simpsons

)

[1]=> SimpleXMLElement Object

(

[name] => That '70s Show

)

[2]=> SimpleXMLElement Object

(

[name] => Family Guy

)

[3]=> SimpleXMLElement Object

(

[name] => SimpleXMLElement Object

(

)

)

)

)

更新完善后的:

$xml_data = file_get_contents('a.xml');

$xml_data = uncdata($xml_data);

$simplexml = simplexml_load_string($xml_data);

print_r($simplexml);

function uncdata($xml)

{

// States:

//

//     'out'

//     '

//     '

//     '

//     '

//     '

//     '

//     '

//     'in'

//     ']'

//     ']]'

//

// (Yes, thestates a represented by strings.)

//

$state = 'out';

$a =str_split($xml);

$new_xml = '';

foreach ($a AS$k => $v) {

// Dealwith "state".

switch ($state ) {

case'out':

if( '

$state = $v;

}else {

$new_xml .= $v;

}

break;

case'

if( '!' == $v  ) {

$state = $state . $v;

}else {

$new_xml .= $state . $v;

$state = 'out';

}

break;

case'

if( '[' == $v  ) {

$state = $state . $v;

}else {

$new_xml .= $state . $v;

$state = 'out';

}

break;

case'

if( 'C' == $v  ) {

$state = $state . $v;

}else {

$new_xml .= $state . $v;

$state = 'out';

}

break;

case'

if( 'D' == $v  ) {

$state = $state . $v;

}else {

$new_xml .= $state . $v;

$state = 'out';

}

break;

case'

if( 'A' == $v  ) {

$state = $state . $v;

}else {

$new_xml .= $state . $v;

$state = 'out';

}

break;

case'

if( 'T' == $v  ) {

$state = $state . $v;

}else {

$new_xml .= $state . $v;

$state = 'out';

}

break;

case'

if( 'A' == $v  ) {

$state = $state . $v;

}else {

$new_xml .= $state . $v;

$state = 'out';

}

break;

case'

if( '[' == $v  ) {

$cdata = '';

$state = 'in';

}else {

$new_xml .= $state . $v;

$state = 'out';

}

break;

case'in':

if( ']' == $v ) {

$state = $v;

}else {

$cdata .= $v;

}

break;

case']':

if(  ']' == $v  ) {

$state = $state . $v;

}else {

$cdata .= $state . $v;

$state = 'in';

}

break;

case']]':

if(  '>' == $v  ) {

$new_xml .= str_replace('>','>',

str_replace('>','<',

str_replace('"','"',

str_replace('&','&',

$cdata))));

$state = 'out';

} else {

$cdata .= $state . $v;

$state = 'in';

}

break;

} // switch

}

return$new_xml;

}

?>

php 解析xml cdata,PHP SimpleXML 对有CDATA的xml解析问题 | 瑕疵学院 – 学习无瑕疵,成就有保障...相关推荐

  1. Java基础加强重温_13:XML(可拓展标记语言)、XML语法、XML约束、XML解析(Dom4j,JAXP)、Dom4j基本使用、Xpath表达式(XML路径语言)、XML解析综合案例

    摘要 Java基础加强重温_13: XML(可拓展标记语言.作用:小型数据库.框架配置文件.不同平台数据交换). XML语法(文档.标签/元素.属性.注释.转义字符.CDTA区) XML约束(DTD约 ...

  2. 【Groovy】Xml 反序列化 ( 使用 XmlParser 解析 Xml 文件 | 获取 Xml 文件中的节点和属性 | 获取 Xml 文件中的节点属性 )

    文章目录 一.创建 XmlParser 解析器 二.获取 Xml 文件中的节点 三.获取 Xml 文件中的节点属性 四.完整代码示例 一.创建 XmlParser 解析器 创建 XmlParser 解 ...

  3. XML与web开发-01- 在页面显示和 XML DOM 解析

    前言: 关于 xml 特点和基础知识,可以菜鸟教程进行学习:http://www.runoob.com/xml/xml-tutorial.html 本系列笔记,主要介绍 xml 在 web 开发时需要 ...

  4. 解析xml_QT开发(四十四)——流方法解析XML

    一.流方法解析XML简介 QT 4.3开始,QT引入了两个新的类来读取和写入XML文档:QXmlStreamReader和QXmlStreamWriter. QXmlStreamReader类提供了一 ...

  5. python读取xml文件有哪些方法_深入解读Python 解析xml的几种方式

    一,概述 在XML解析方面,Python贯彻了自己开箱即用batteries included的原则, 在自带的标准库中,python提供了大量可以用于处理XML语言的包和工具 二,正文 1,什么是X ...

  6. XML解析 (JAVA解析xml文件)java+Dom4j+Xpath xml文件解析根据子节点得到父节点 查找校验xml文件中相同的节点属性值 java遍历文件夹解析XML

    XML解析 (JAVA解析xml文件)java+Dom4j+Xpath xml文件解析根据子节点得到父节点 以及查找xml文件中相同的节点属性值 项目背景:这是本人实习中所碰到的项目,当时感觉很棘手, ...

  7. XML文档定义有几种形式?解析XML文档有哪几种方式?

    XML文档定义有几种形式?它们之间有何本质区别?解析XML文档有哪几种方式? a: 两种形式 dtd schema,b: 本质区别:schema本身是xml的,可以被XML解析器解析(这也是从DTD上 ...

  8. linux中从内存解析xml格式的库,Linux下使用libxml库解析xml文件

    目录 libxml简介 libxml库安装 libxml2中的数据类型和函数 xml文档解析实例 运行结果 libxml简介 libxml是一个用于解析xml文件的库,在各个平台下都能使用,也支持多种 ...

  9. python xml快速解析_在Python中使用Expat进行快速XML解析

    Python允许通过其内置模块expat读取和处理XML数据.它是一个非验证XML解析器.它创建一个XML解析器对象,并将其对象的属性捕获到各种处理程序函数中.在下面的示例中,我们将看到各种处理程序函 ...

最新文章

  1. 【Qt】Qt再学习(十六):QObject::connect: Cannot queue arguments of type ‘QString‘
  2. Makefile常用信息查询页
  3. springboot入门_shiro
  4. python打开另一个程序_python 新手问题啊,为什么我运行一个python程序,另一个就会自动退出呢?始终只能运行一个...
  5. java 1.8新增功能_Java 8的新增功能(第二部分-可能会出现什么)
  6. Quick BI产品核心功能大图(六)开放集成
  7. android侧滑菜单ui,Android:UI控件DrawerLayout、Fragment、SlidingLayout侧滑菜单
  8. python操作docx入门教程
  9. Javascript校验含中文的字符串长度
  10. Redis云管理平台CacheCloud
  11. 为什么说12306比淘宝双十一的技术挑战更大?
  12. 2NE1 AON北京演唱会
  13. 敏捷项目管理 第2版[JimHighsmith](一)
  14. 批量压缩图片软件 JAVA
  15. ballerina 学习二十七 项目k8s部署 运行
  16. 看最强大脑的数字华容道,尝试理解与总结
  17. stm32-DHT11原理及代码解读
  18. 08级北京大学计算机学院李益,保送北京大学2008届的研究生花名册.pdf
  19. 统计单词的数量----Python
  20. 中科院京区博士生申请申根(德国)签证流程

热门文章

  1. Java面向对象回顾
  2. od机考题目-免单统计-第10讲:高频真题解析 III(上)
  3. SAP WM初阶之事务代码LQ02
  4. 全球与中国泳衣布料市场深度研究分析报告(2021)
  5. Android @Override详解
  6. 一文读懂四大保险(重疾险、医疗险、意外险、寿险)
  7. Maven 依赖管理(依赖范围/排除/原则)
  8. 上周技术关注:Google会不会做操作系统?
  9. 体验学习的快乐.体会进步的喜悦!
  10. JS处理前台页面的所有异常