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?