使用XSLT作为主模板文件时通过PHP解析XML文件
我有很多(500ish)xml文件来自旧的ASP和VBscript,它运行在旧的windows服务器上。用户可以单击一个链接下载请求的xml文件,或者单击一个链接查看xml文件导入到他们的系统后的外观 如果单击以查看输出,这将打开一个弹出窗口,如果xml文件名通过URL传递&使用xslt模板文件,这将显示输出 示例url=/transform.php?action=transform&xmlProtocol=AC_Audiology.xml 现在,我们正在使用PHP5 im试图获得类似于相同输出的东西。 我们开始研究xslt_create();但这是php4中的一个旧函数 我正在寻找部署此功能的最佳方法 php主页面应该检查并捕获$_GET['xmlProtocol']值。 将其作为数据传递到xslt模板页面; 它将以html格式输出使用XSLT作为主模板文件时通过PHP解析XML文件,php,xml,xslt,Php,Xml,Xslt,我有很多(500ish)xml文件来自旧的ASP和VBscript,它运行在旧的windows服务器上。用户可以单击一个链接下载请求的xml文件,或者单击一个链接查看xml文件导入到他们的系统后的外观 如果单击以查看输出,这将打开一个弹出窗口,如果xml文件名通过URL传递&使用xslt模板文件,这将显示输出 示例url=/transform.php?action=transform&xmlProtocol=AC_Audiology.xml 现在,我们正在使用PHP5 im试图获得类似于相同输出
在正确的方向上有一个大致的观点会很好 您可以在找到“新”XSL(T)扩展的文档(+示例)。您可以在找到“新”XSL(T)扩展的文档(+示例)。大约两年前我遇到过类似的问题。我使用的是PHP5,但需要使用xslt_create();或同等产品。最后,我转到PHP4 您可能可以将服务器设置为在任何地方使用PHP5,但特定文件夹中的文件除外。我相信这就是我所做的,这样我就可以使用PHP4处理XSL文件,但大多数网站仍然使用PHP5 在过去两年中,情况可能发生了变化,PHP5对xslt_create()之类的东西有更好的支持我没有关注最近的变化
希望这有帮助 大约两年前我也有过类似的问题。我使用的是PHP5,但需要使用xslt_create();或同等产品。最后,我转到PHP4 您可能可以将服务器设置为在任何地方使用PHP5,但特定文件夹中的文件除外。我相信这就是我所做的,这样我就可以使用PHP4处理XSL文件,但大多数网站仍然使用PHP5 在过去两年中,情况可能发生了变化,PHP5对xslt_create()之类的东西有更好的支持我没有关注最近的变化 希望这有帮助 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);
}
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);
}