【问题标题】:Parsing XML file through PHP while using XSLT as the main template file通过 PHP 解析 XML 文件,同时使用 XSLT 作为主模板文件
【发布时间】:2009-09-09 16:13:38
【问题描述】:

我有很多(500ish)xml 文件来自在旧 Windows 服务器上运行的旧 ASP 和 VBscript。用户可以单击链接下载请求的 xml 文件,或者单击链接查看 xml 文件导入系统后的外观...

如果点击查看输出,这会打开一个弹出窗口,如果 xml 文件名是通过 URL 传递的,并且使用 xslt 模板文件会显示输出。

示例 url = /transform.php?action=transform&xmlProtocol=AC_Audiology.xml

现在正在使用 PHP5 我试图获得类似相同输出的东西。 我们开始研究 xslt_create();但这是 php4 的旧函数

我正在寻找部署它的最佳方法。

主 php 页面应检查并捕获 $_GET['xmlProtocol'] 值。 将此作为数据传递给 xslt 模板页面; 是否会以 html 格式输出。

一个正确方向的大致点会很棒!

【问题讨论】:

    标签: php xml xslt


    【解决方案1】:

    您可以在http://docs.php.net/xsl 找到“新”XSL(T) 扩展的文档(+示例)。

    【讨论】:

      【解决方案2】:

      php

      // 转换.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);
      }
      

      【讨论】:

        【解决方案3】:

        大约两年前我遇到了类似的问题。我使用的是 PHP5 但需要使用 xslt_create();或等价物。最终,我切换到了 PHP4。

        您可能可以将您的服务器设置为在除特定文件夹中的文件之外的任何地方使用 PHP5。我相信这就是我所做的,所以我可以使用 PHP4 处理 XSL 文件,但大多数网站仍然使用 PHP5。

        在过去的两年里,事情可能发生了变化,PHP5 对 xslt_create(); 之类的东西有更好的支持; ---- 我没有关注最近的变化。

        希望这会有所帮助!

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2020-04-13
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2021-08-12
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多