Forum Webscript.Ru

Программирование => Perl => Тема начата: dimk от 22 Апреля 2008, 11:08:52

Название: XML::XSLT выборка
Отправлено: dimk от 22 Апреля 2008, 11:08:52
Почему не работает выборка с XML::XSLT?
Пробовал в версии 0.40 c activestate и 0.48 CPAN.
В IE выбирается правильно, а XML::XSLT выбирает только последний элемент.


$xml = qq~

 zzz
 aaa
 ccc
 ggg
~;

$xsl = qq~


 

     
     



 


  • ~;

    use XML::XSLT;
    print XML::XSLT->new($xsl, warnings=>1)->transform ($xml)->toString;
    Название: XML::XSLT выборка
    Отправлено: ravshaniy от 22 Апреля 2008, 17:18:49
    у меня эксплойер выдал ошибку, в принципе более полную информацию я получил сделав debug:
    XML::XSLT->new($xsl, warnings=>1, debug=>1)
    и при use strict; есть одна ошибка интерполяции массива @sex, заменил qq на q.
    вот... возможно позже еще вернусь к этому вопросу
    Название: XML::XSLT выборка
    Отправлено: dimk от 22 Апреля 2008, 19:08:24
    Спасибо, действительно не экранировал @sex, надо \\@sex

    XSLT начал изучать только что. вопросы:
    1. Мне надо применить шаблон к элементу с определенным значением атрибута. Правильно ли я делаю в принципе, или чаще используют другие способы?

    2. Поддерживает ли такую выборку XML::XSLT?
    в описании написано, что поддержка xsl:apply-templates ограничена.

    3. Какой модуль для XSLT и perl под windows лучше использовать? mod-xslt2 для windows apache не установить?
    Название: XML::XSLT выборка
    Отправлено: dimk от 22 Апреля 2008, 19:46:43
    Установил XML::LibXSLT, заработало.

    use XML::XSLT::Wrapper;
    my $xslt = XML::XSLT::Wrapper->new(ProcessorList => [\'libxslt\'],);
    print $xslt->transform(XMLString => $xml, XSLString => $xsl);