В моем недавнем проекте у меня есть ситуация, когда мне нужно преобразовать XSLt в XML. Могу ли я сделать это и как это возможно?Могу ли я преобразовать XSLT в XML?
ответ
XSLT (EXtensible Stylesheet Language Transformation) is XML (расширяемый язык разметки), он используется для преобразования другого XML в любой текст любого типа, часто больше XML.
В большинстве случаев некоторые данные в документе xml преобразуются путем применения преобразования с использованием документа xslt для генерации вывода.
Например, Можно было бы иметь список книг в файле данных xml, подходящих для использования в компьютерном программном обеспечении, и таблицу стилей xslt, которая может преобразовать этот список книг в документ html (или xhtml или ...), который более подходит для человека потребление.
вот пример кода, который работает с XSLT для хорошей мерой:
#!/usr/bin/php -q
<?php
namespace XSLTProcessorTool
{
use DOMDocument;
use XSLTProcessor;
/**
* Class Processor: Process an xml file according to a stylesheet
*/
class Program
{
static function main(array $args)
{
if(count($args) >= 3)
{
/** @noinspection PhpUnusedLocalVariableInspection Intentionally ignoring the first element here */
$programFile = array_shift($args);
$xmlFile = array_shift($args);
$xslFile = array_shift($args);
$xml = new DOMDocument();
if (false != ($xml->load($xmlFile)))
{
$xsl = new DOMDocument();
if (false != ($xsl->load($xslFile)))
{
$transformer = new XSLTProcessor();
$transformer->importStylesheet($xsl);
$result = $transformer->transformToXml($xml);
fputs(STDOUT, $result);
}
else
{
self::reportFatalError(sprintf('Unable to read XSL from %s', $xslFile));
}
}
else
{
self::reportFatalError(sprintf('Unable to read XML from %s', $xmlFile));
}
}
else
{
self::reportFatalError('Need at 2 parameters representing an xml file and the xsl sheet to transform it with.');
}
}
/**
* Log an error message and exit.
*
* @param $message
*/
private static function reportFatalError($message)
{
fputs(STDERR, $message);
die(1);
}
}
// usage: php -q xslt.php data.xml stylesheet.xslt > output.xml
/** @var $argv array containing commandline arguments */
Program::main($argv);
}
#EOF
Это инструмент командной строки, которая принимает два аргумента; путь к файлу данных xml и путь к файлу xslt. вывод сбрасывается в stdout (консоль, из которой вы ее запускали, или перенаправлена в файл и т. д.)
xslt уже xml – Kris
Мне нужно преобразовать этот XSLT в XML, как я могу это сделать? – Muhammad
Вам ** не нужно ** конвертировать что-либо. –