PHP中XML处理

  • DOM :一次性将xml载入内存,内存问题需要注意

  • SimpleXML:小文件可以选择它,不支持命令空间

  • XMLReader : 边读边操作, “拉取”模型,大文件操作

  • XML Parser : SAX模型是一个“推送”模型,大文件操作

SimpleXML

语法

PHP的语法simplexml_load_string()函数具有以下语法。

simplexml_load_string(data,classname,options,ns,is_prefix);

参数

参数

是必须的

描述

数据

需要。

一个格式正确的XML字符串

班级名称

可选的。

新对象的类

选项

可选的。

额外的Libxml参数。通过指定选项和1或0(TRUE或FALSE,例如LIBXML_NOBLANKS(1))来设置

ns

可选的。

命名空间前缀或URI

is_prefix

可选的。

如果ns是前缀,则为TRUE。如果ns是URI,则为FALSE。默认值为FALSE

选项的可能值:

LIBXML_COMPACT - 激活节点分配优化(可加速应用程序)

  • LIBXML_DTDATTR - 设置默认DTD属性

  • LIBXML_DTDLOAD - 加载外部子集

  • LIBXML_DTDVALID - 使用DTD进行验证

  • LIBXML_NOBLANKS - 删除空白节点

  • LIBXML_NOCDATA - 将CDATA合并为文本节点

  • LIBXML_NOEMPTYTAG - 展开空标记(例如对<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版本

  • LIBXML_DOTTED_VERSION - 获取点分的libxml版本

返回值

成功时返回SimpleXMLElement对象。失败时为FALSE。

示例

简单示例

结果:

文件不大时,可以配合以下方式转为数组使用

常见CDATA 包裹数据处理

示例:

资料:

微信开发基础之php函数simplexml_load_string

XMLReader

示例

XML Parser

Last updated

Was this helpful?