Как Преобразовать XML с XSLT, использующим PHP в Wordpress

Прямо сейчас я преобразовываю XML-документ с таблицей стилей XSLT с помощью JavaScript (в основанном на Wordpress веб-сайте). Это хорошо работает в Firefox и Chrome, но не в IE. Плюс, если бы JavaScript не включен, ничто не обнаружилось бы.

Так, моя цель состоит в том, чтобы сделать преобразование XML/XSLT к XHTML на сервере, не клиент, предпочтительно с помощью PHP.

Я попробовал много различных Сценариев PHP, которые другие люди записали (я - новичок), но я не могу заставить их работать. Я включал самый простой Сценарий PHP, который я нашел ниже. Я знаю, что динамический filepath мог бы быть проблемой, но я не знаю лучший способ определить местоположение XML и файлов XSLT.

Когда я использую ниже сценария, я получаю ошибку: Ошибка анализа: синтаксическая ошибка, неожиданный T_STRING в/home/alan/public_html/wp-content/themes/Stacked/page-renting.php на строке 42

Альтернативные решения приветствовались бы также.

<?php

$xml = new DOMDocument();
$xml->load('<?php bloginfo('template_directory'); ?>/rentals/works.xml');

$xsl = new DOMDocument;
$xsl->load('<?php bloginfo('template_directory'); ?>/rentals/works.xsl');

$proc = new XSLTProcessor();
$proc->importStyleSheet($xsl);

echo $proc->transformToXML($xml);

?>
5
задан Alan 24 January 2010 в 19:40
поделиться

3 ответа

Вам просто нужно заменить этот бит PHP в правильном контексте, таким образом:

$xml = new DOMDocument;
$xml->load(get_bloginfo('template_directory') . '/rentals/works.xml');

$xsl = new DOMDocument;
$xsl->load(get_bloginfo('template_directory') . '/rentals/works.xsl');

$proc = new XSLTProcessor;
$proc->importStyleSheet($xsl);

echo $proc->transformToXML($xml);
3
ответ дан 14 December 2019 в 13:36
поделиться

Решил.

Я попробовал вышеупомянутые предложения Джоша и Рубенса, но документы xml и xsl все еще не удалось найти. Но, исходя из идеи Джоша о другом способе доступа к каталогу шаблонов, я немного погуглил и нашел это решение:

Вот окончательный PHP-скрипт, который я использовал для преобразования XML с XSLT на сервере с помощью PHP. Спасибо всем, кто помог.

<?php

$xml = new DOMDocument;
$xml->load('./wp-content/themes/Stacked/rentals/WORKS.xml');

$xsl = new DOMDocument;
$xsl->load('./wp-content/themes/Stacked/rentals/WORKS.xsl');

$proc = new XSLTProcessor;
$proc->importStyleSheet($xsl);

echo $proc->transformToXML($xml);

?>

Две ключевые вещи, которые заставляют его работать:

  1. Использование периода и пути к файлу в качестве альтернативы обычному методу wordpress, который я использовал раньше.

  2. Чувствительность к регистру. Имена моих файлов были написаны с заглавной буквы (не мудро, я знаю). Так как файловые пути обычно не чувствительны к регистру, я об этом не подумал, но оказалось, что в данном случае (когда внутри PHP-скрипта?) использование правильного регистра для BOTH имя темы (Stacked) и имя файла (WORKS.xml, WORKS.xsl) необходимо для того, чтобы заставить его найти файл корректно.

2
ответ дан 14 December 2019 в 13:36
поделиться

Вы должны удалить эту информацию Bloginfo; Этот метод нагрузки получает ваши имена файлов XML / XSLT.

$xml->load('/rentals/works.xml');
$xsl->load('/rentals/works.xsl');

Конечно, они должны указывать правильный путь вашего файлов XML / XSLT

0
ответ дан 14 December 2019 в 13:36
поделиться
Другие вопросы по тегам:

Похожие вопросы: