Преобразование XML в HTML с использованием XSL? - PullRequest
1 голос
/ 18 января 2012

У меня есть несколько XML, XSL-файл и 4 CSS-файла.Я пытаюсь обработать XML с помощью XSLTProcessor, но он не работает.



    $xml = new DomDocument;
    $xml->load('label.xml');

    $xsl = new DomDocument;
    $xsl->load('HTMLRestOfWorldRoutingLabelRendererOrig.xsl');

    $proc = new xsltprocessor;
    $proc->importStyleSheet($xsl);
    $result = $proc->transformToXML($xml); 

    echo $result;


Но это просто отображает ниже без какого-либо форматирования.

</p> <pre><code><?xml version="1.0"?> 1 1.11kg piece1 1100123456782011641024001011 123456782|123456782||1||John Smith|TNT Express|ATHERSTONE|CV9 1TT|GB|S||TNT Corporate Head Office|Neptunusstraat 41-63|AMSTERDAM|1011 AA|NL||EX|N|PR||||0|12.34|GBP|N|piecelinegoods desc|3|1.11|1.3676310000000003|N|18 Jan 2012|13:51:00 2 1.11kg piece1 1100123456782021641024001011 123456782|123456782||2||John Smith|TNT Express|ATHERSTONE|CV9 1TT|GB|S||TNT Corporate Head Office|Neptunusstraat 41-63|AMSTERDAM|1011 AA|NL||EX|N|PR||||0|12.34|GBP|N|piecelinegoods desc|3|1.11|1.3676310000000003|N|18 Jan 2012|13:51:00 3 1.11kg piece3 1100123456782031641024001011 123456782|123456782||3||John Smith|TNT Express|ATHERSTONE|CV9 1TT|GB|S||TNT Corporate Head Office|Neptunusstraat 41-63|AMSTERDAM|1011 AA|NL||EX|N|PR||||0|12.34|GBP|N|piecelinegoods desc|3|1.11|1.3676310000000003|N|18 Jan 2012|13:51:00 123456782 John Smith TNT Express TNT House ATHERSTONE Warks CV9 1TT GB TNT Corporate Head Office Neptunusstraat 41-63 2132 JA Hoofddorp AMSTERDAM 1011 AA NL 100445 GB 3 Express PR 2012-01-18 INT AIR C 2 CVT EMA LGG SP8 19 2012-01-19 01 GBP 12.34 BSH

Мой файл label.xml находится на http://pastebin.com/Shm09jCK

Я загрузил HTMLRestOfWorldRoutingLabelRendererOrig.xsl в http://pastebin.com/QPXE3B0r

Я должен упустить что-то очевидное, но этоэто ново для меня, и я не уверен!

Ответы [ 2 ]

2 голосов
/ 18 января 2012

В вашем коде XSLT нет ни одного шаблона с атрибутом match.Это означает, что ни один из шаблонов не выполняется, и процессор XSLT применяет встроенные шаблоны (по умолчанию) для каждого типа узла.

Чистый результат от применениявстроенные шаблоны заключаются в том, что вывод представляет собой объединение всех текстовых узлов в исходном XML-документе - именно это вы и получаете.

Решение :

Определите хотя бы один соответствующий шаблон, такой как <xsl:template match="/">.В коде этого шаблона вы можете называть свои именованные шаблоны, хотя вызов шаблонов, как правило, является плохой практикой, и применение шаблонов обычно предпочтительнее.

0 голосов
/ 18 января 2012

Попробуйте:

<xsl:output method="html" />

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...