DOMDocument 是 PHP 处理 XML/HTML 的标准类,需注意编码一致、空白节点处理及错误屏蔽:加载前设 preserveWhiteSpace=false、libxml_use_internal_errors(true),显式指定 encoding;保存时启用 formatOutput=true 可格式化输出。

PHP 的 DOMDocument 类是处理 XML(和 HTML)最常用、最标准的方式。它基于 W3C DOM 规范,支持加载、解析、修改和保存 XML 文档。关键在于:加载要处理编码和错误,保存要注意格式化和编码一致性。
用 load() 加载文件,loadXML() 加载字符串。默认会解析 DTD 并报告警告(比如编码不匹配、标签未闭合),建议提前配置错误处理:
libxml_use_internal_errors(true) 屏蔽警告,避免因非致命问题中断执行$doc->encoding = 'UTF-8' 显式声明编码(尤其对无声明的 XML)encoding="GBK",需确保源内容真实为 GBK,否则解析可能乱码示例:
phpXML 中换行和缩进会被解析为 DOMText 节点,干扰遍历。可在加载前启用 preserveWhiteSpace = false:
立即学习“PHP免费学习笔记(深入)”;
load() 或 loadXML() 之前设置,之后设置无效示例:
$doc = new DOMDocument();用 save() 写入文件,saveXML() 返回字符串。注意三点:
saveXML() 默认输出整个文档,加参数如 $doc->saveXML($node) 可只输出某个子节点formatOutput = true(但会自动添加换行和空格)$doc->encoding 决定,且 XML 声明中的 encoding 属性也会被同步更新示例(保存为缩进 UTF-8):
$doc->formatOutput = true;实际使用中容易卡在这几个地方:
$doc->encoding 三者一致;读取后可用 mb_detect_encoding() 辅助判断allow_url_fopen 关闭时 load() 会失败,改用 file_get_contents() + loadXML()
createCDATASection() 显式创建节点基本上就这些。DOMDocument 不复杂但容易忽略细节,把编码、空白、错误处理这三块理清楚,日常 XML 操作就稳了。
以上就是PHP DOMDocument类怎么加载和保存XML的详细内容,更多请关注php中文网其它相关文章!
PHP怎么学习?PHP怎么入门?PHP在哪学?PHP怎么学才快?不用担心,这里为大家提供了PHP速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号