Разбор XML-файла через PHP при использовании XSLT в качестве основного файла шаблона. - PullRequest
0 голосов
/ 09 сентября 2009

У меня есть много (500ish) XML-файлов из старого ASP и VBscript, который работал на старом сервере Windows. Пользователь может щелкнуть ссылку, чтобы загрузить запрошенный файл XML, или щелкнуть ссылку, чтобы посмотреть, как будет выглядеть файл XML после его импорта в свою систему ...

Если щелкнуть, чтобы просмотреть выходные данные, это откроет всплывающее окно, в котором имя файла xml передается через URL, и с использованием файла шаблона xslt будет отображаться вывод.

пример url = /transform.php?action=transform&xmlProtocol=AC_Audiology.xml

Теперь, используя PHP5, я пытаюсь получить что-то похожее на тот же вывод. мы начали изучать xslt_create (); но это старая функция из php4

Я ищу лучший способ для развертывания этого.

Главная страница php должна проверить и зафиксировать значение $ _GET ['xmlProtocol']. передать это на страницу шаблона xslt как данные; где это будет выводиться в формате HTML.

общий пункт в правильном направлении был бы великолепен!

Ответы [ 3 ]

2 голосов
/ 09 сентября 2009

Документацию (+ примеры) "нового" расширения XSL (T) можно найти по адресу http://docs.php.net/xsl.

1 голос
/ 10 сентября 2009

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);
}
0 голосов
/ 09 сентября 2009

У меня была похожая проблема около двух лет назад. Я использовал PHP5, но мне нужно было использовать xslt_create (); или эквивалент. В итоге я перешел на PHP4.

Возможно, вы можете настроить свой сервер на использование PHP5 везде, кроме файлов в определенной папке. Я считаю, что это то, что я сделал, поэтому я мог обрабатывать XSL-файлы, используя PHP4, но большинство сайтов все еще использовали PHP5.

Возможно, что за последние два года все изменилось, и PHP5 лучше поддерживает что-то вроде xslt_create (); ---- Я не следил за последними изменениями.

Надеюсь, это поможет!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...