同事!
我解析 Yandex XML 输出并将结果放入 Word docx 文件中。我以这种方式使用 PHPWORD 库执行此操作:
$section->addText($result);
$objWriter->save('helloWorld.docx');
某些内容已写入生成的 helloWorld.docx 文件,但 Word 不想打开它。
如果我尝试用记事本打开文件,会显示文本,但以裂缝的形式
所有数据在浏览器中正常显示:
我怀疑问题出在编码上,但我不明白在 PHPWORD 库中编辑什么。-phpword.html ),我什至没有这些文件,因为我刚刚安装了库。也许有人遇到最近有类似的问题吗?我将不胜感激任何建议和帮助...
PS 如果您在 Word 中打开文件时显示的消息中展开详细信息,则会显示 xml 解析错误



结果,我们设法将 XML 放入 Word 报告中!存档和编码结果一无所获。
事实证明,Word 不接受某些 XML 特殊字符,特别是:& 和 <,因此在打开 Word 时会出现 Parsing XML 错误。为了解决这个问题,您需要为所有使用 Word 的操作添加一个特殊的 PHPWORD 方法:
PhpOffice\PhpWord\Settings::setOutputEscapingEnabled(true);它旨在处理未解码的 xml 字符。这里有一些替代解决方案(https://stackoverflow.com/questions/40301312/xml-parsing-error-phpword),但在我的案例中提到的那个有效。