PHP,Laravel中的xml文件中,<![CDATA[]>怎么解析

xml文件在解析的时候,CDATA 部分中的所有内容都会被解析器忽略。

在网上看到了各式各样的解决办法。还有说用正则表达式的。实际上可以将 CDATA 设置为文本节点。

$content = simplexml_load_string($content,'SimpleXMLElement', LIBXML_NOCDATA);

参见: 函数 simplexml_load_string(data,classname,options,ns,is_prefix);

参数描述
data必需。规定形式良好的 XML 字符串。
classname可选。规定新对象的 class。
options可选。规定附加的 Libxml 参数。通过指定选项为 1 或 0(TRUE 或 FALSE,例如 LIBXML_NOBLANKS(1))进行设置。

可能的值:

  • LIBXML_COMPACT - 激活节点的优化配置(可加速应用程序)
  • LIBXML_DTDATTR - 设置默认的 DTD 属性
  • LIBXML_DTDLOAD - 装载额外的子集
  • LIBXML_DTDVALID - 验证 DTD 有效性
  • LIBXML_NOBLANKS - 删除空节点
  • LIBXML_NOCDATA - 将 CDATA 设置为文本节点
  • LIBXML_NOEMPTYTAG - 扩展空标签(例如 <br/> 到 <br></br>),仅在 DOMDocument->save() 和 DOMDocument->saveXML() 函数中有效
  • LIBXML_NOENT - 替代实体
  • LIBXML_NOERROR - 不显示错误报告
  • LIBXML_NONET - 装载文档时停止访问网络
  • LIBXML_NOWARNING - 不显示警告报告
  • LIBXML_NOXMLDECL - 当存储一个文档时放弃 XML 声明
  • LIBXML_NSCLEAN - 删除多余的名称空间声明
  • LIBXML_PARSEHUGE - 设置 XML_PARSE_HUGE 标志,用来放宽解析器的任何强制限制。这将影响诸如文档的最大深度和文本节点大小限制等。
  • LIBXML_XINCLUDE - 使用 XInclude 替代
  • LIBXML_ERR_ERROR - 获取可纠正的错误
  • LIBXML_ERR_FATAL - 获取致命错误
  • LIBXML_ERR_NONE - 不获取错误
  • LIBXML_ERR_WARNING - 获取简单警告
  • LIBXML_VERSION - 获取 libxml 版本(例如 20605 或 20617)
  • LIBXML_DOTTED_VERSION - 获取带点的 libxml 版本(例如 2.6.5 或 2.6.17)
ns可选。规定命名空间前缀或 URI。
is_prefix可选。规定一个布尔值。如果 ns 是前缀则为 TRUE,如果 ns 是 URI 则为 FALSE。默认是 FALSE。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值