2010-12-08 129 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"/>