PHP无内置数组转XML函数,需用SimpleXML(推荐)或DOMDocument实现,关键在处理嵌套、重复元素、属性/文本区分及非法字符转义,并注意键名合法性、空值处理与UTF-8编码。
PHP 将数组转为 XML 没有内置函数,但可以通过递归构造或使用 SimpleXML 扩展实现。关键在于处理嵌套结构、同级重复元素、属性与文本内容的区分,以及避免非法字符(如特殊符号、空格开头的键名)导致 XML 格式错误。
适合大多数场景,能精确控制节点名、属性和文本内容:
$xml = new SimpleXMLElement(' ');
@ 开头的键),还是继续嵌套(数组)htmlspecialchars() 转义,防止 、& 等破坏 XML 结构

['name' => '张三', 'age' => 25] → 张三 25
比 SimpleXML 更底层,适合需要设置文档声明、缩进、编码(如 UTF-8)的正式输出:
$dom = new DOMDocument('1.0', 'UTF-8');
$dom->formatOutput = true; 自动缩进$dom->createElement() 或 $dom->createAttribute()
实际转换中容易出错的地方:
-、. 开头,建议统一前缀(如 item_)或用下划线替换['book' => ['a','b']] 应转为多个 a b ,不能合并成一个节点 或跳过,避免生成 冗余结构encoding="UTF-8"
基本上就这些。不需要装额外扩展,原生 PHP 就能搞定,核心是理清数组层级和 XML 节点映射关系,再加一点转义和容错处理。