PHP处理XML文档,没有CDATA部分数据处理

Posted 根号5减1除以2

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了PHP处理XML文档,没有CDATA部分数据处理相关的知识,希望对你有一定的参考价值。

  在博客备份时,导出了所有文章,导出是xml文档,文章内容在CDATA部分。

  这里介绍下XML中CDATA:

  所有 XML 文档中的文本均会被解析器解析。只有 CDATA 区段(CDATA section)中的文本会被解析器忽略。

  术语 CDATA 指的是不应由 XML 解析器进行解析的文本数据(Unparsed Character Data)。在 XML 元素中,"<" 和 "&" 是非法的。
  "<" 会产生错误,因为解析器会把该字符解释为新元素的开始。 "&" 也会产生错误,因为解析器会把该字符解释为字符实体的开始。
  某些文本,比如 javascript 代码,包含大量 "<" 或 "&" 字符。为了避免错误,可以将脚本代码定义为 CDATA。
  CDATA 部分由 "<![CDATA[" 开始,由 "]]>" 结束。

  XML格式如下:

<description><![CDATA[<p> Laravel框架中间件使用</p> ]]></description>
<description><![CDATA[<p> 浮点数乘积以后取整,得到的数不符预期</p>]]></description>

   在用php处理函数  simplexml_load_file,处理该文档时,默认不包含CDATA数据部分。

  

<?php

$filename = ‘xx‘;

$xml = simplexml_load_file($filename);// 无CDATA数据


$xml = simplexml_load_file($filename, null, LIBXML_NOCDATA);// 第三个参数即可

 

  




以上是关于PHP处理XML文档,没有CDATA部分数据处理的主要内容,如果未能解决你的问题,请参考以下文章

XML 特殊字符处理和 CDATA

有没有办法在 xml 中转义 CDATA 结束令牌?

XML

XML学习

在 PHP 中修改 ![CDATA[]]? (XML)

JDOM 如何修改XML文档中的CDATA段数据