Может ли PHP общаться с XSLT? - PullRequest
0 голосов
/ 11 августа 2010

Я хочу использовать комбинацию xml & xslt в качестве системы шаблонов.Вопрос, на который я хочу ответить, заключается в следующем: могут ли xslt и PHP взаимодействовать друг с другом (т.е. совместно использовать переменные)?

Ответы [ 3 ]

2 голосов
/ 11 августа 2010

Основная задача, которую вы можете выполнить с помощью PHP, состоит в том, чтобы определить, какой XML-файл преобразовать с помощью какого XSLT-скрипта.С его помощью вы можете
a) передавать параметры из PHP в XSLT и
b) использовать функции PHP в сценарии XSLT.
В этом примере показано, как - первый файл PHP:

<?php
function f($value){
  //do something
  return $value;
}
$proc=new XsltProcessor;
$proc->registerPHPFunctions();
$proc->setParameter('', 'p', '123');
$proc->importStylesheet(DOMDocument::load("script.xsl"));
echo $proc->transformToXML(DOMDocument::load("data.xml"));
?>

второй XSLT-файл:

<?xml version="1.0" encoding="utf-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:php="http://php.net/xsl" exclude-result-prefixes="php">
  <xsl:param name="p" select="''"/>
  <xsl:template match="/">
    <xsl:value-of select="$p"/> 
    <xsl:value-of select="php:function('f', '456')"/>
  </xsl:template>
</xsl:stylesheet>

Выходные данные должны быть 123456
EDITED: вместо этого выберите = "" 'select = ""

1 голос
/ 11 августа 2010

XSLT - это язык, а не часть программного обеспечения.Это полностью зависит от того, какое программное обеспечение вы используете для обработки вашего XSLT: если это расширение PHP, работающее как часть вашего существующего приложения PHP, тогда да.В противном случае нет.

0 голосов
/ 11 августа 2010

Что именно вы подразумеваете под «общими переменными»? Вы хотите, чтобы PHP-скрипт сначала генерировал XSLT и использовал этот вывод в другом PHP-скрипте для визуализации ваших XML-данных? Если так, то да, это возможно. Неважно, откуда XSLT.

...