为什么xml:space =“preserve”不受php xslt转换的尊重

时间:2014-04-18 09:31:51

标签: php xml xslt

我尝试通过转换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:中放置一些文本,而不是单个空格,那么它可以正常工作。

任何帮助都将受到高度赞赏。 谢谢!

P.S。我使用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谢谢!

1 个答案:

答案 0 :(得分:0)

这可能是由于 libxml2 版本2.9.0中引入的一些更改,而 libxslt 没有考虑到这些更改。 This commit解决了该问题,并将成为下一个 libxslt 版本的一部分。