PHP如何生成xml文件? 一段代码教你动态创建xml文档

使用SimpleXMLElement和DOMDocument可轻松生成格式化XML文件,示例代码创建包含两本书信息的books.xml,通过addChild添加节点,DOMDocument美化输出并保存,确保写入权限及特殊字符转义。

PHP生成XML文件非常简单,可以使用内置的 SimpleXMLElement 类来动态创建XML文档并保存为文件。下面是一段完整示例代码,演示如何用PHP生成一个结构化的XML文件。

创建基本XML结构

以下代码将创建一个包含书籍信息的XML文档,并保存为 books.xml 文件:

');

// 添加第一本书
$book1 = $xml->addChild('book');
$book1->addChild('title', 'PHP从入门到精通');
$book1->addChild('author', '张三');
$book1->addChild('year', 2025);
$book1->addChild('price', '59.00');

// 添加第二本书
$book2 = $xml->addChild('book');
$book2->addChild('title', '深入理解MySQL');
$book2->addChild('author', '李四');
$book2->addChild('year', 2025);
$book2->addChild('price', '78.50');

// 设置输出格式并保存为文件
$dom = new DOMDocument('1.0');
$dom->preserveWhiteSpace = false;
$dom->formatOutput = true;
$dom->loadXML($xml->asXML());

$dom->save('books.xml');

echo "XML文件已成功生成:books.xml";
?>

代码说明

  • new SimpleXMLElement():初始化一个XML对象,传入根标签。
  • addChild():用于添加子节点,支持嵌套结构。
  • asXML():将SimpleXML对象转换为XML字符串。
  • DOMDocument:用于美化输出(换行和缩进),提升可读性。
  • save():将最终XML内容写入文件。

生成结果(books.xml)

执行后生成的XML文件内容如下:



  
    PHP从入门到精通
    张三
    2025
    59.00
  
  
    深入理解MySQL
    李四
    2025
    78.50
  

注意事项

  • 确保PHP有写入权限,否则 save() 会失败。
  • 如果数据来自数据库或表单,可在循环中动态调用 addChild() 添加多条记录。
  • 特殊字符(如 &, )会被自动转义,避免XML格式错误。
基本上就这些,不复杂但容易忽略格式美化这一步。