Intereting Posts
Как прочитать список файлов из папки с помощью PHP? htmlentities не дает желаемого результата в laravel Проще чем использовать корпус переключателя для изменения цвета Найдите подходящие открытые / закрытые скобки Кэширование PHP (HTML + PHP) Как создать и сохранить изображение в папке веб-сайта из кодированных base64 данных / строки с помощью PHP PHP preg_split удаляет запятые и завершающий пробел Php Curl 403 запрещенная ошибка как использовать facebook для входа пользователя на мой сайт? Как сохранить 3 списка переключателей в базе данных mysql в одном столбце, в разных строках? Как заставить Zend Route использовать другой модуль в зависимости от имени домена Выполнить mysql «создать функцию» с помощью PHP Разрешить доступ к файлу PHP только через ajax на локальном сервере Heroku не распознает мое приложение Laravel как приложение PHP и не выполняет установку композитора Вложение phpMailer

Передача переменных в XSLT

Я новичок в XML / XSL. Я хочу иметь возможность передавать var в строке правила и возвращать правильные данные.

Прямо сейчас у меня есть этот PHP:

<?php $params = array('id' => $_GET['id']); $xslDoc = new DOMDocument(); $xslDoc->load("test.xsl"); $xmlDoc = new DOMDocument(); $xmlDoc->load("test.xml"); $xsltProcessor = new XSLTProcessor(); $xsltProcessor->registerPHPFunctions(); $xsltProcessor->importStyleSheet($xslDoc); foreach ($params as $key => $val) $xsltProcessor->setParameter('', $key, $val); echo $xsltProcessor->transformToXML($xmlDoc); ?> 

Мой XML-файл выглядит так:

 <Profiles> <Profile> <id>1</id> <name>john doe</name> <dob>188677800</dob> </Profile> <Profile> <id>2</id> <name>mark antony</name> <dob>79900200</dob> </Profile> <Profile> <id>3</id> <name>neo anderson</name> <dob>240431400</dob> </Profile> <Profile> <id>4</id> <name>mark twain</name> <dob>340431400</dob> </Profile> <Profile> <id>5</id> <name>frank hardy</name> <dob>390431400</dob> </Profile> </Profiles> 

И мой xsl выглядит так

 <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> <xsl:param name="id" /> <xsl:template match="*"> <html><body> <h2>Profile</h2> <table cellspacing="1" cellpadding="5" border="1"> <caption>User Profiles</caption> <tr><th>ID</th><th>Name</th><th>Date of Birth</th></tr> <xsl:for-each select="/Profiles/Profile[id='$id']"> <tr> <td><xsl:value-of select="id"/></td> <td><xsl:value-of select="php:function('ucwords', string(name))"/></td> <td><xsl:value-of select="php:function('date', 'jS M, Y', number(dob))"/></td> </tr> </xsl:for-each> </table> </body></html> </xsl:template> </xsl:stylesheet> 

Когда я проверяю URL-адрес следующим образом:

  http://foo.com/sanbox/index.php?id=2 

Я только получаю:

 Профиль
 Идентификатор профилей пользователей Имя Дата рождения.