2010-12-19 32 views
3

我使用php XSLTProcessor來轉換XML文件的特定部分,我需要將其作爲內容合併到另一個HTML文檔中。如何防止PHP :: XSLTProcessor生成<html>和<body>標籤?

的問題是,XSLTProcessor總是發出這樣的代碼:

<head> 
<body> 
[what I need to incorporate] 
</body> 
</head> 

我需要阻止它產生那些周圍的標籤,我該怎麼辦呢?

+0

我不認爲這是一個好主意,產生無效的HTML文件,事實上我不知道有任何辦法做到這一點。在使用XSLT轉換AJAX請求的響應時,我總是使用JS來僅附加結果文檔的必要部分。猜測這也是使用PHP時的一個選項。 – Flack 2010-12-19 13:54:37

+0

我已經爲我的網站構建了一個PHP模板系統,我從另一個服務器獲取XML,因此出於安全原因我需要進行轉換服務器端,我不想搞亂我的模板,我只需要將轉換後的數據合併到相應的佔位符 – 2010-12-19 14:02:29

+0

好問題,+1。查看我的答案,找出可能的解決方案 – 2010-12-19 15:26:34

回答

3

您是否試過而不是要使用html輸出法?

我會嘗試:

<xsl:output method="xml"/>

如果您的XSLT處理器允許自定義的XMLWriter類,你可以寫這樣強制執行某些詞彙的形式(如不具有較短的形式或書面的某些元素類<br />和從不<br></br>),如果這是必需的。

+0

實際上有一個名爲registerPHPFunctions的方法,它可以將PHP函數用作XSLT函數(http://www.php.net/manual/en/xsltprocessor.registerphpfunctions.php)。我不確定如何使用它,但我會試一試。現在我得到了一個簡單的解決方法,它只是簡單地將結果XML解析爲DOM,並返回節點的innerHTML – 2010-12-19 17:19:49

相關問題