Error xsltprocessor transformtoxml no stylesheet associated to this object

Error xsltprocessor transformtoxml no stylesheet associated to this object У меня вопрос к знающим людям, пишу страничку по прозьбе знакомых. В этом деле еще новичок, но работу надо сделать срочно! по этому своими силами не справлюсь надо сделать чтото вроде новостной ленты, записи решила сохранять в xml файл которые нужно вывести разумеется на страницу […]

Содержание

  1. Error xsltprocessor transformtoxml no stylesheet associated to this object
  2. Error xsltprocessor transformtoxml no stylesheet associated to this object
  3. Error xsltprocessor transformtoxml no stylesheet associated to this object

Error xsltprocessor transformtoxml no stylesheet associated to this object

У меня вопрос к знающим людям, пишу страничку по прозьбе знакомых. В этом деле еще новичок, но работу надо сделать срочно! по этому своими силами не справлюсь

надо сделать чтото вроде новостной ленты, записи решила сохранять в xml файл
которые нужно вывести разумеется на страницу

foreach ( $xml -> msg as $msg ) <
echo ‘

‘ . $msg -> name . «

» ;
echo $msg -> message . «

» ;
>

но различный символы (русские буквы и всякие ö ä ü õ выводятся коряво (меняла кодировку- не помогло), в сам xml файл записывает все как надо

= new DOMDocument ();
$XML -> load ( ‘data.xml’ );

$xslt = new XSLTProcessor ();
$XSL = new DOMDocument ();
$XSL -> load ( ‘data.xsl’ );

$xslt -> importStylesheet ( $XSL );
print $xslt -> transformToXML ( $XML );
?>

Warning: XSLTProcessor::importStylesheet() [xsltprocessor.importstylesheet]: compilation error: file file:///C:/wamp/www/haigla/data.xsl line 2 element stylesheet in C:wampwwwhaiglaforum.php on line 12

Warning: XSLTProcessor::importStylesheet() [xsltprocessor.importstylesheet]: xsltParseStylesheetProcess : document is not a stylesheet in C:wampwwwhaiglaforum.php on line 12

Warning: XSLTProcessor::transformToXml() [xsltprocessor.transformtoxml]: No stylesheet associated to this object in C:wampwwwhaiglaforum.php on line 13

в гугле о том что это такое и как с этим бороться ничего вразумительного не нашла

вопрос: нужно чтоб пхп страничка красивенько все выводила. что сделать для этого?

Источник

Error xsltprocessor transformtoxml no stylesheet associated to this object

У меня вопрос к знающим людям, пишу страничку по прозьбе знакомых. В этом деле еще новичок, но работу надо сделать срочно! по этому своими силами не справлюсь

надо сделать чтото вроде новостной ленты, записи решила сохранять в xml файл
которые нужно вывести разумеется на страницу

foreach ( $xml -> msg as $msg ) <
echo ‘

‘ . $msg -> name . «

» ;
echo $msg -> message . «

» ;
>

но различный символы (русские буквы и всякие ö ä ü õ выводятся коряво (меняла кодировку- не помогло), в сам xml файл записывает все как надо

= new DOMDocument ();
$XML -> load ( ‘data.xml’ );

$xslt = new XSLTProcessor ();
$XSL = new DOMDocument ();
$XSL -> load ( ‘data.xsl’ );

$xslt -> importStylesheet ( $XSL );
print $xslt -> transformToXML ( $XML );
?>

Warning: XSLTProcessor::importStylesheet() [xsltprocessor.importstylesheet]: compilation error: file file:///C:/wamp/www/haigla/data.xsl line 2 element stylesheet in C:wampwwwhaiglaforum.php on line 12

Warning: XSLTProcessor::importStylesheet() [xsltprocessor.importstylesheet]: xsltParseStylesheetProcess : document is not a stylesheet in C:wampwwwhaiglaforum.php on line 12

Warning: XSLTProcessor::transformToXml() [xsltprocessor.transformtoxml]: No stylesheet associated to this object in C:wampwwwhaiglaforum.php on line 13

в гугле о том что это такое и как с этим бороться ничего вразумительного не нашла

вопрос: нужно чтоб пхп страничка красивенько все выводила. что сделать для этого?

Источник

Error xsltprocessor transformtoxml no stylesheet associated to this object

Профиль
Группа: Участник
Сообщений: 6
Регистрация: 20.7.2009

Репутация: нет
Всего: нет

У меня вопрос к знающим людям, пишу страничку по прозьбе знакомых. В этом деле еще новичок, но работу надо сделать срочно! по этому своими силами не справлюсь

надо сделать чтото вроде новостной ленты, записи решила сохранять в xml файл
которые нужно вывести разумеется на страницу

lilin
Дата 20.7.2009, 11:21 (ссылка) | (нет голосов) Загрузка .

» ;
>

Код
foreach ($xml->msg as $msg) <
echo ‘
‘.$msg->name.» «;
echo $msg->message.»

но различный символы (русские буквы и всякие ö ä ü õ выводятся коряво (меняла кодировку- не помогло), в сам xml файл записывает все как надо

Код
load( ‘data.xml’ );

$xslt = new XSLTProcessor();
$XSL = new DOMDocument();
$XSL->load( ‘data.xsl’);

$xslt->importStylesheet( $XSL );
print $xslt->transformToXML( $XML );
?>

Warning: XSLTProcessor::importStylesheet() [xsltprocessor.importstylesheet]: compilation error: file file:///C:/wamp/www/haigla/data.xsl line 2 element stylesheet in C:wampwwwhaiglaforum.php on line 12

Warning: XSLTProcessor::importStylesheet() [xsltprocessor.importstylesheet]: xsltParseStylesheetProcess : document is not a stylesheet in C:wampwwwhaiglaforum.php on line 12

Warning: XSLTProcessor::transformToXml() [xsltprocessor.transformtoxml]: No stylesheet associated to this object in C:wampwwwhaiglaforum.php on line 13

в гугле о том что это такое и как с этим бороться ничего вразумительного не нашла

вопрос: нужно чтоб пхп страничка красивенько все выводила. что сделать для этого?

PS совет «искать ошибку в ДНК» не помогает

jsa
Дата 20.7.2009, 13:02 (ссылка) | (нет голосов) Загрузка .

Опытный

Профиль
Группа: Участник
Сообщений: 704
Регистрация: 19.1.2006
Где: Новосибирск

Репутация: 3
Всего: 20

Профиль
Группа: Участник
Сообщений: 6
Регистрация: 20.7.2009

Репутация: нет
Всего: нет

lilin
Дата 20.7.2009, 13:08 (ссылка) | (нет голосов) Загрузка .
Код

Name1
msg1

Name2
msg2

Код
Name Message
jsa
Дата 21.7.2009, 06:33 (ссылка) | (нет голосов) Загрузка .

Опытный

Профиль
Группа: Участник
Сообщений: 704
Регистрация: 19.1.2006
Где: Новосибирск

Репутация: 3
Всего: 20

а че за странная такая кодировка

Профиль
Группа: Участник
Сообщений: 6
Регистрация: 20.7.2009

Репутация: нет
Всего: нет

кодировка для балтийских символов

с xml исправила — не помогло

lilin
Дата 22.7.2009, 08:11 (ссылка) | (нет голосов) Загрузка .
jsa
Дата 22.7.2009, 10:24 (ссылка) | (нет голосов) Загрузка .

Опытный

Профиль
Группа: Участник
Сообщений: 704
Регистрация: 19.1.2006
Где: Новосибирск

Репутация: 3
Всего: 20

Цитата(lilin @ 22.7.2009, 13:11 )
с xml исправила — не помогло
Код
Name Message

Это сообщение отредактировал(а) jsa — 22.7.2009, 10:26

Прежде чем опубликовать вопрос, попробуйте воспользоваться поиском — возможно тема уже поднималась.

Также рекомендуем Вам зайти в раздел FAQ ,раздел дополняется и, возможно, там вы увидите готовое решение.

Для ответов на часто задаваемые вопросы существует FAQ раздела. Новости можно публиковать в разделе новостей. Для статей так же есть специальный раздел

Желаем удачи в Вашем деле!

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, diadiavova.

0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | XML, XSL | Следующая тема »

[ Время генерации скрипта: 0.1104 ] [ Использовано запросов: 20 ] [ GZIP включён ]

Источник

Adblock
detector

Ошибки:

Warning: XSLTProcessor::importStylesheet() [xsltprocessor.importstylesheet]: 
Undefined variable in /transform.php on line 24

Warning: XSLTProcessor::importStylesheet() [xsltprocessor.importstylesheet]: 
compilation error: file /protocols.xsl line 18 element template in /transform.php on line 24

Warning: XSLTProcessor::importStylesheet() [xsltprocessor.importstylesheet]: 
Failed to compile predicate in /transform.php on line 24

Warning: XSLTProcessor::importStylesheet() [xsltprocessor.importstylesheet]: 
Undefined variable in /transform.php on line 24

Warning: XSLTProcessor::importStylesheet() [xsltprocessor.importstylesheet]: 
compilation error: file /home6/oneninfi/public_html/craigfreeman/iphone/project1/protocols.xsl line 22 element template in /transform.php on line 24

Warning: XSLTProcessor::importStylesheet() [xsltprocessor.importstylesheet]: 
Failed to compile predicate in /transform.php on line 24

Warning: XSLTProcessor::transformToXml() [xsltprocessor.transformtoxml]: 
No stylesheet associated to this object in /transform.php on line 35

PHP:

$xsl = new XSLTProcessor();
    $xsldoc = new DOMDocument();
    $xsldoc->load($_GET['xsl'].'.xsl'); // protocols.xsl
    $xsl->importStyleSheet($xsldoc); // LINE 24

    if(isset($_GET['sectionNumber']))
        $xsl->setParameter('', 'sectionNumber', $_GET['sectionNumber']);
    if(isset($_GET['protocolNumber']))
        $xsl->setParameter('', 'protocolNumber', $_GET['protocolNumber']);
    if(isset($_GET['entryNumber']))
        $xsl->setParameter('', 'entryNumber', $_GET['entryNumber']);

    $xmldoc = new DOMDocument();
    $xmldoc->load($_GET['xml'].'.xml');
    echo $xsl->transformToXML($xmldoc); // LINE 35

XSL:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE xsl:stylesheet>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
    <xsl:param name="protocolNumber"></xsl:param>
    <xsl:param name="sectionNumber"></xsl:param>
<xsl:output method="html" encoding="UTF-8"/>
<xsl:template match="page/section[@id=$sectionNumber]"> // LINE 18
    <xsl:apply-templates select="protocol[@id=$protocolNumber]"/>
</xsl:template>

<xsl:template match="protocol[@id=$protocolNumber]"> // LINE 22
  <h4>(<xsl:value-of select="$sectionNumber"/>.<xsl:value-of select="@id"/>)&nbsp;<xsl:value-of select="@title"/></h4>
    <!-- Applies templates to all child elements -->
    <ol><xsl:apply-templates/></ol>
</xsl:template>

<xsl:template match="start">
  <span class="start"><xsl:value-of select="@level" /></span>
</xsl:template>

<xsl:template match="stop">
  <span class="stop"><xsl:value-of select="@level" />&nbsp;STOP</span>
</xsl:template>

<xsl:template match="note">
  <span class="note"><span class="noteType"><xsl:value-of select="@title" /></span>:&nbsp;<xsl:value-of select="." /></span>
</xsl:template>

<xsl:template match="step">
   <li><span class="step"><xsl:value-of select="."/></span></li>
</xsl:template>

</xsl:stylesheet>

XML:

<?xml version="1.0" encoding="UTF-8"?>
<page type="Protocols">
    <section id="3" title="Adult Cardiac Life Support">
        <protocol id="0" title="Cardiac Arrest - General Procedures">
            <start level="All Levels"/>
                <step>Verify patient is pulseless and apneic.</step>
                <step>Initiate or continue CPR.  CPR is to be continued at all times, except during defibrillation and /or interruptions &lt; 10 sec for patient transfer.</step>
                <step>Assure airway patency and begin use of BVM.  Provide initial BLS airway management, including Oropharyngeal or Nasopharyngeal Airway.</step>
                <step>Apply AED or SAED if available.  If AED already in place, wait until current shock sequence completion to switch to another AED or manual monitor – may use previously applied patches if compatible with new unit.</step>
                <step>Follow prompts provided by AED/SAED device.</step>
                <step>Utilize ALS, or initiate timely transport toward ALS (ALS intercept or hospital if closer).  If ALS not available, no more than 3 shocks should be delivered at the scene.  Defibrillation should not be performed in a moving ambulance.</step>
                <step>Advise receiving hospital ASAP.</step>
            <stop level="EMT"/>
            <start level="EMT-I, CC &amp; P"/>
                <step>If AED/SAED not already applied, quick look using manual monitor and defibrillate PRN after CPR of at least 5 cycles (about 2 minutes).  Apply limb leads and pads in between shock sequences as appropriate.</step>
                <step>Obtain vascular access.</step>
                <step>Secure definitive airway.  If BLS airway is sufficient to maintain chest rise, continue until additional time or resources are available.  If unable to intubate, continue use of BLS airway adjuncts or use alternate airway device.<br/><br/>emove Bag Valve device whenever transferring patient, moving patient in and out of Ambulance, or other times 
when Bag Valve device may dislodge the device.<br/><br/>Reassess airway patency after any movement of patient.</step>
            <stop level="EMT-I" />
            <start level="EMT-CC &amp; P"/>
                <step>Give medications as listed in the following specific arrhythmia / dysrhythmia protocols. 
</step>
                <note title="NOTE">Should IV/IO access not be available, Epinephrine, Atropine, and Lidocaine may be administered via ETT under 
direct, on-line Medical Control.</note>
        </protocol></section></page>

PHP5
Поддержка XML/XSL

Мысли? Что-нибудь очевидное?

За последние 24 часа нас посетил 10961 программист и 564 робота. Сейчас ищут 414 программистов …

  1. Опять же возвращаясь к старой теме.
    Поцоны написали, что можно сделать так:

    1. <xsl:text><![CDATA[<?php echo 123 ?>]]></xsl:text>

    но так можно сделать, если код xslt-шаблона находится в том-же файле, где и XSLT-процессор.
    У меня же все xslt-преобразования находятся в .xsl-файлах, поэтому тупо вываливает на страичку <?php echo 123 ?>
    Попробовал сделать такое:

    1. AddHandler application/xhttpdphp .php .xsl

    но как и следовало ожидать, ничего не получилось.

    Какие еще могут быть варианты встроить php в xslt?

    Добавлено спустя 57 секунд:
    Хм, наверное можно сделать левый xml-файл, в котором и будет php-код на входе и xml на выходе, а его уже обрабатывать xslt-шаблонами


  2. YSandro

    С нами с:
    7 апр 2011
    Сообщения:
    2.523
    Симпатии:
    2

    1. AddType application/x-httpd-php .xsl

    В начале файла не забыть

    1. header(‘Content-type: text/xml’); 

    Тип добавить перед строкой

    1. Action application/x-httpd-php «путь к php»

  3. В начале какого файла? xsl-шаблона? Если в xsl-шаблон добавить хедер — XSLTProcessor выдаст ошибку


  4. YSandro

    С нами с:
    7 апр 2011
    Сообщения:
    2.523
    Симпатии:
    2

    Не понятно. Обычно есть xml файлы, они в своём коде требуют файл преобразований xsl в теге

    1. <?xml-stylesheet href=»style.xsl» type=»text/xsl»?>

    Вот для xsl файла и настроить Апач, чтобы он воспринимал его, как php скрипт.

    В .htaccess или в httpd.conf вписать строчку

    1. AddType application/x-httpd-php .xsl

    Если xsl будет восприниматься, как php скрипт, то можно вписывать «<?php echo 123 ?>» хоть куда, или header(‘Content-type: text/xml’); или лучше header(‘Content-type: text/xsl’);

    Проблема может возникнуть, если оставлять в xml файлах объявление

    1. <?xml version=»1.0″ encoding=»utf-8″?>

    т.к. php будет сбивать с толку начало «<?». Нужно вывести объявление отдельно

    1. header(‘Content-type: text/xsl’);
    2. echo ‘<?xml version=»1.0″ encoding=»utf-8″?>’;
    3. <xsl:stylesheet version=»1.0″ xmlns:xsl=»http://www.w3.org/1999/XSL/Transform»>

  5. Ок, тогда давай так.

    index.php:

    1. $doc = new DOMDocument();
    2. $proc= new XSLTProcessor();
    3. $proc->importStyleSheet($xsl);
    4. echo $proc->transformToXML($doc);

    test.xml

    1. <?xml version=«1.0» encoding=«UTF-8»?> 

    test.xsl

    1. <?xml version=«1.0» encoding=«UTF-8»?>
    2.    <xsl:stylesheet version=»1.0″ xmlns:xsl=»http://www.w3.org/1999/XSL/Transform»>
    3.       <xsl:output method=»html» encoding=»utf-8″ indent=»yes»/>
    4.       <xsl:template match=»udata»>
    5.          <xsl:call-template name=»factorial»>
    6.            <xsl:with-param name=»n» select=»num»/>
    7.       <xsl:template name=»factorial»>
    8.             <xsl:when test=»$n=0″>1</xsl:when>
    9.                <xsl:variable name=»n-1″>
    10.                   <xsl:call-template name=»factorial»>
    11.                      <xsl:with-param name=»n» select=»$n — 1″/>
    12.                <xsl:value-of select=»$n * number($n-1)»/>

    запускаем index.php, получаем в браузере 720

    Что мне в этом test.xsl дописать, чтобы можно было выполнить php-код? Вот хотя-бы тот-же session_start(); например

    Добавлено спустя 13 минут 59 секунд:
    Если же мы добавим в наш test.xsl вот тот хедер, то получим что-то типа этого:

    1. Warning: DOMDocument::load() [domdocument.load]: Start tag expected, ‘<‘ not found in

    Поскольку test.xsl уже не валидный xml-файл

    ну и в том-же духе дальше:

    1. Warning: XSLTProcessor::importStylesheet() [xsltprocessor.importstylesheet]: compilation error in
    1. Warning: XSLTProcessor::importStylesheet() [xsltprocessor.importstylesheet]: xsltParseStylesheetProcess : empty stylesheet in
    1. Warning: XSLTProcessor::transformToXml() [xsltprocessor.transformtoxml]: No stylesheet associated to this object in

  6. YSandro

    С нами с:
    7 апр 2011
    Сообщения:
    2.523
    Симпатии:
    2

    Мда, я тебя не правильно понял. Никогда не использовал XSLTProcessor, т.к. считал, что загружать им сервер не стоит. Делал вывод отдельно сгенерированных xml и xsl, полагаясь на браузер пользователя.

    Т.к. нужно всё это преобразовать на сервере, можно так:
    index.php

    1. //index.php//использование XSLTProcessor
    2. include(‘test.xml’);//парсинг/выполнение/присоединение переменных
    3. $doc->loadXML($docF);//вместо ->load(файл)
    4. $xsl->loadXML($xslF);//вместо ->load(файл)
    5. $proc= new XSLTProcessor();
    6. $proc->importStyleSheet($xsl);
    7. echo $proc->transformToXML($doc);

    test.xml

    1. echo ‘<?xml version=»1.0″ encoding=»UTF-8″?>’,«n«;
    2. //и любой другой php код…

    В test.xsl то же самое сделать, вывести ‘<?xml version=»1.0″ encoding=»UTF-8″?>’ через echo.

    В этом случае, если не придется вызывать xml и xsl из браузера, то не нужно добавлять в .htaccess

    1. AddType application/x-httpd-php .xsl
    2. AddType application/x-httpd-php .xml

  7. Да тут наверное можно было в index.php загрузить xsl через file_get_content и отдать его XSLT-процессору через loadXML а не через load., и даже не пришлось бы городить htaccess — xsl-шаблон бы находился в php-файле.
    Но проблема в другом
    На сервере я ничего сделать не могу, кроме как править XSLT-шаблоны. Это движок UMI.CMS. Понадобилось на сайт добавить нестандартный блок, который невозможно сделать средствами движка. Можно это реализовать через макросы, но документация по написанию макросов очень скудная. Сами же файлы движка выглядят примерно так:

    1. $v8b1dc169bf460ee884fceef66c6607d6 = cmsController::getInstance();$v72ee76c5c29383b7c9f9225c1fa4d10b = $v8b1dc169bf460ee884fceef66c6607d6->getCurrentDomain()->getId();$v100664c6e2c0333b19a729f2f3ddb7dd = CURRENT_WORKING_DIR . «/sys-temp/sitemap/{$v72ee76c5c29383b7c9f9225c1fa4d10b};$v736007832d2167baaae763fd3a3f3cf1 = dir($v100664c6e2c0333b19a729f2f3ddb7dd);while (false !== ($v8c7dd922ad47494fc02c388e12c00eac = $v736007832d2167baaae763fd3a3f3cf1->read())) {if(is_file($v100664c6e2c0333b19a729f2f3ddb7dd . $v8c7dd922ad47494fc02c388e12c00eac)) readfile($v100664c6e2c0333b19a729f2f3ddb7dd . $v8c7dd922ad47494fc02c388e12c00eac);}$v736007832d2167baaae763fd3a3f3cf1->close();echo ‘</urlset>’;

    таких вот файлов еще несколько тысяч и все это в одну строчку

Понравилась статья? Поделить с друзьями:
  • Error while opening the project autostart not possible
  • Error unable to activate audio device code 88890004 soundwire
  • Error trying to parse file sublime text 3
  • Error transferring server replied
  • Error transaction net usage is too high 200 0