2016-12-07 9 views
-2

В моем недавнем проекте у меня есть ситуация, когда мне нужно преобразовать XSLt в XML. Могу ли я сделать это и как это возможно?Могу ли я преобразовать XSLT в XML?

+2

xslt уже xml – Kris

+0

Мне нужно преобразовать этот XSLT в XML, как я могу это сделать? – Muhammad

+2

Вам ** не нужно ** конвертировать что-либо. –

ответ

0

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 (консоль, из которой вы ее запускали, или перенаправлена ​​в файл и т. д.)

 Смежные вопросы

  • Нет связанных вопросов^_^