2009-09-09 88 views
0

我從舊的ASP和運行在舊的Windows服務器上的VBscript有很多(500個)xml文件。用戶可以點擊一個鏈接下載所需的xml文件,或者點擊一個鏈接查看xml文件在導入系統後的外觀。使用XSLT作爲主要模板文件通過PHP解析XML文件

如果點擊查看輸出,則會打開一個彈出窗口窗口是xml文件名是通過URL &使用xslt模板文件傳遞,這將顯示輸出。

例如URL = /transform.php?action=transform & xmlProtocol = AC_Audiology.xml

現在使用PHP5我嘗試讓一些類似於相同的輸出。 我們開始研究xslt_create();但這是從php4的舊功能

我正在尋找最好的方法來部署此。

主要的php頁面應該檢查&捕獲$ _GET ['xmlProtocol']的值。 將此信息作爲數據傳遞給xslt模板頁面; 是否會以html格式輸出。

一個正確的方向一般點將是偉大的!

回答

0

兩年前我有類似的問題。我正在使用PHP5,但需要使用xslt_create();或等同物。最終,我切換到PHP4。

您可以將服務器設置爲在任何地方使用PHP5,除了某個文件夾中的文件。我相信這就是我所做的,所以我可以使用PHP4處理XSL文件,但大多數網站仍然使用PHP5。

在過去的兩年中,事情可能已經發生了變化,PHP5對xslt_create()這樣的東西有更好的支持。 ----我沒有跟蹤最近的變化。

希望這會有所幫助!

1

PHP

// Transform.php

if(isset($_GET['action']) && $_GET['action'] == 'transform') { 

    // obviously you would never trust the input and would validate first 
    $xml_file = AFunctionValidateAndGetPathToFile($_GET['xmlProtocol']); 

    // Load up the XML File 
    $xmlDoc = new DOMDocument; 
    $xmlDoc->load($xml_file); 

    // Load up the XSL file 
    $xslDoc = new DomDocument; 
    $xslDoc->load("xsl_template_file.xsl"); 
    $xsl = new XSLTProcessor; 
    $xsl->importStyleSheet($xslDoc); 

    // apply the transformation 
    echo $xsl->transformToXml($xmlDoc); 
}