当我使用PHP QueryPath 2.1.2修改docx xml文件[document.xml]时,实际的test1.docx文件中的更改是不可见的,为什么?

时间:2013-02-24 23:33:31

标签: php xml querypath

我正在尝试学习如何使用PHP [QueryPath]修改.docx和.odt文件,当我在WAMP上从cmd.exe [命令行]运行此脚本[下面]时,在命令行上显示更改我想要的已经完成并且标签内的所有文本都已更改,但是当我打开一个实际的docx文件或其xml等效文件时 - 没有进行任何更改。为什么?我该如何纠正这个?提前谢谢。

    <?php

require 'src/QueryPath/QueryPath.php';

$file = 'zip://test1.docx#word/document.xml';

$doc = qp($file);

foreach($doc->find('w|t') as $item) {
        $item->text('BLABLABLA')->writeXML();
}


?>

1 个答案:

答案 0 :(得分:2)

来自writeXML的{​​{3}}:

  

将文档写入文件路径(如果给定),或写入stdout(通常是客户端)。

由于您没有向writeXML传递任何内容,因此只显示修改后的XML,而不是将其保存到文件中。

此外,您应该修改代码,只在脚本末尾调用writeXML一次,即

$doc->writeXML($filename);