为什么xml:space=";保存“;php-xslt转换不支持


why xml:space="preserve" is not honored by php xslt transformation

我试图通过转换DOCX中的document.xml并将其重新注入来生成一些DOCX文档。

除了这段代码:之外,一切都很好

<w:r>
    <w:t xml:space="preserve"> </w:t>
</w:r>

转换后变成:

<w:r>
<w:t xml:space="preserve"/>
</w:r>

如果我在w:t中放一些文本,而不是一个空格,它就可以了。

如有任何帮助,我们将不胜感激。非常感谢。

附言:我使用XAMPP 1.8.3 XsltProcessor附带的php 5.5.9进行转换。另一个注意事项:同样的代码在旧版本的XAMPP(1.8.1,如果我没记错的话)中运行良好

遵循nwellnhof解决方案并替换代码如下:

<w:r>
    <w:t xml:space="preserve"><xsl:text> </xsl:text></w:t>
</w:r>

它奏效了。

@nwellnhof谢谢!

这可能是由于libxml22.9.0版本中引入的一些更改,而libxslt没有考虑到这些更改。此提交修复了该问题,并将成为下一个libxslt版本的一部分。