привет всем, я хочу динамически изменить таблицу стилей моего файла XML с помощью PHP
что-то вроде этого:
XML-файл register.xml
когда я пытаюсь отобразить его, он показывает мне:
выход
Хорошо, вот что я хочу сделать :
1) Как я упоминал ранее, у меня есть файл XML с именем «regiter.xml»
2) Допустим, у меня есть 3 файла с расширением .xsl (style1.xsl,style2.xsl, style3.xsl)
3) И у меня есть своего рода тег формы, который дает пользователю выбор, как он хочет отображать файл XML, он может выбрать стиль 1, 2 или 3.
4) Я хочу динамически изменять значение атрибута href="file.xsl" в теге <?xml-stylesheet ?> файла "register.xml" в зависимости от выбора пользователя.
мой вопрос:
можно так?
если нет, можете ли вы предложить мне другой способ сделать это?
Спасибо...
хорошо, у меня есть другой файл с расширением .xsl для примеров style1.xsl style2.xsl и style3.xsl <br/> и у меня есть файл XML с именем register.xml <br/> что я хочу сделать, так это отобразить «зарегистрировать .xml» с разными стилями <br/> скажем, у меня есть 3 кнопки, если я нажму первую, она свяжет «style1.xsl» с «register.xml», если я нажму вторую, она свяжет « стиль2.xsl" .....
Пожалуйста, добавьте все такие объяснения в сам вопрос, а не в раздел комментариев.
Добро пожаловать в Stack Overflow. Пожалуйста, редактировать вопрос, чтобы включить текст сообщения об ошибке, так как этот текст будет доступен для поиска и, возможно, позволит другим людям с той же проблемой найти этот вопрос и возможные ответы на него.






Подумайте о том, чтобы 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;
Спасибо за ответ, но он дает мне следующую ошибку: Эта страница содержит следующие ошибки: ошибка в строке 1 в столбце 6: Дополнительный контент в конце документа
<br/>Список лиц установлен ........<br/><br /> <b>Устранимая фатальная ошибка</b>: объект класса DOMDocument не может быть преобразован в строку в <b> /var/www/html/xmlProject/controller/infoController.php</b> в строке <b>29</b><br />
я прокомментировал заголовок ("Content-type: text/xml"), и он работает, я не знал, почему .... но спасибо вам
что ты уже испробовал? Где ты застрял? Что вы подразумеваете под «таблицей стилей моего XML-файла»?