Измените файл xslt файла xml, используя php - PullRequest
0 голосов
/ 06 марта 2019

Привет всем, я хочу динамически изменить таблицу стилей моего XML-файла, используя PHP примерно так: XML-файл register.xml когда я пытаюсь отобразить его, он показывает мне: выход положен

ОК, вот что я хочу сделать:1) Как я уже говорил, у меня есть XML-файл с именем "regiter.xml"2) Допустим, у меня есть 3 файла с расширением .xsl (style1.xsl, style2.xsl, style3.xsl)3) И у меня есть своего рода тег формы, который дает пользователю выбор того, как он хочет отобразить XML-файл, он может выбрать style1, 2 или 3.4) Я хочу изменить значение атрибута href = "file.xsl" в тегефайла "register.xml" динамически в зависимости от выбора пользователя .

мой вопрос:это можно сделать?если нет, можете ли вы предложить мне другой способ сделать это?спасибо ...

1 Ответ

0 голосов
/ 07 марта 2019

Подумайте о том, чтобы PHP запускал сценарии XSLT, и не изменяйте инструкцию обработки для браузера для отображения таблицы стилей.

// LOAD XML SOURCE
$doc = new DOMDocument();
$doc->load('Input.xml');

// CONDITIONALLY SELECT XSLT SCRIPT
if (if(isset($_POST['button_1']))) {
    $selected_xsl = "/path/to/style1.xsl";

} elseif (if(isset($_POST['button_2']))) {
    $selected_xsl = "/path/to/style2.xsl";

} elseif (if(isset($_POST['button_3']))) {
    $selected_xsl = "/path/to/style3.xsl";

}   
$xsl = new DOMDocument();
$xsl->load($selected_xsl);

// INITIALIZE AND RUN TRANSFORMER
$proc = new XSLTProcessor;
$proc->importStyleSheet($xsl); 
$newXML = $proc->transformToXML($doc);

// OUTPUT NEW XML TO SCREEN
header("Content-type: text/xml");
echo $newXML;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...