2010-12-08 132 views
0

我在PHP中使用XSLT时遇到了一个奇怪的问题。 XSL文件中的所有br标签正在转换成<br> </br >即打开和关闭br标签。PHP XSLT将BR标签转换为<br></br>

此转换正在Google Chrome浏览器中创建UI问题。 Chrome正在将</>转换为另一个<br>标记,因此UI变得混乱。

请帮我尽快.....

+0

除了@Matthew Wilson指出的序列化方法外,我不认为一个字面的自封闭的空`br`会以打开和关闭标签的空元素的形式输出。如果您从输入源复制它,那么即使使用XML序列化,也有方法可以保留自封闭的空元素。 – 2010-12-08 13:09:34

+0

我有简单的XSL文件,其中包含
转换后,HTML包含


的地方,这对我来说很陌生。 当在FF中查看页面时,它会正确显示,但在Chrome中,我看到两个换行符而不是一个,因为Chrome正在将关闭的文本
转换为另一个BR标签。 这是一个奇怪的行为,我从来没有见过:( – Sahil 2010-12-10 07:48:04

回答

0

我在PHP手册网站上找到了我的问题的答案。网址:http://php.net/manual/en/xsltprocessor.transformtoxml.php

它是在用户注释,以下是同样的评论:

$ domTranObj = $ xslProcessor-> transformToDoc($ domXmlObj);

$ domHtmlText = $ domTranObj-> saveHTML();

难道修为有效的XHTML的<元>但不正确结束像< BR/>空节点,其输出继电器是这样的:<BR> </BR >

一些浏览器记下此为2个不同的< BR/> ...

为了解决这个问题利用

$ domTranObj = $ xslProcessor-> transformToDoc($ domXmlObj);

$ domHtmlText = $ domTranObj-> saveXML();

2

你有没有指定

<xsl:output method="html"/>