Модераторы: diadiavova
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Помогите отладить XSLT 
:(
    Опции темы
tishaishii
Дата 22.11.2011, 22:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Создатель
***


Профиль
Группа: Завсегдатай
Сообщений: 1262
Регистрация: 14.2.2006
Где: Москва

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



Где-то здесь есть ошибка. Но процессор не говорит где.

Код
<?xml version="1.0"?>

<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns="http://www.w3.org/1999/xhtml">
    <xsl:template match="/">
        <xsl:value-of select="for
    $a in /myxml
return &lt;html&gt;
    &lt;body&gt;{
        for $b in (
            $a/name,
            $a/email,
            $a/year_birth,
            $a/sex,
            $a/col
        ) return
            &lt;div&gt;
                &lt;label&gt;{
                    switch($b/name()) 
                        case &quot;name&quot; return &quot;Имя&quot;
                        case &quot;email&quot; return &quot;E-mail&quot;
                        case &quot;sex&quot; return &quot;Пол&quot;
                        case &quot;col&quot; return &quot;Количество конечностей&quot;
                        case &quot;extra_p&quot; return &quot;Сверх-способности&quot;
                        default return &quot;&quot;
                }&lt;/label&gt; &lt;span&gt;{$b/text()}&lt;/span&gt;
            &lt;/div&gt;
    }
    &lt;div&gt;
        &lt;label&gt;Биография&lt;/label&gt;
        &lt;xmp&gt;{$a/biography/text()}&lt;/xmp&gt;
    &lt;/div&gt;
    {
        for $b in ($a/familiar[text()=&quot;on&quot;])
            return &lt;div&gt;
                &lt;label&gt;Подпись не помню&lt;/label&gt;
            &lt;/div&gt;
    }
    &lt;/body&gt;
&lt;/html&gt;"/>
        <xsl:apply-templates/>
    </xsl:template>
</xsl:stylesheet>


Это сообщение отредактировал(а) tishaishii - 22.11.2011, 22:41
PM MAIL ICQ Skype   Вверх
magelan
Дата 23.11.2011, 01:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


потерял xPath
**


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

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



Я думаю, кодировки ему не хватает. 

Зачем вы так через вэлью-оф извращаетесь?
Пишите по честному:
Код

<xsl:text disable-output-escaping="yes">
<![CDATA[
Любая javascript/invalid html фигня проскочит как есть со скобками, 
амперсантами и другими спецсимволами
]]>
</xsl:text>


Это сообщение отредактировал(а) magelan - 23.11.2011, 01:25
PM MAIL   Вверх
tishaishii
Дата 23.11.2011, 06:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Создатель
***


Профиль
Группа: Завсегдатай
Сообщений: 1262
Регистрация: 14.2.2006
Где: Москва

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



Там XQuery.
Кодировка нужна, конечно.
Но у меня всё равно пишет "Ошибка разбора XSLT".
PM MAIL ICQ Skype   Вверх
tishaishii
Дата 23.11.2011, 06:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Создатель
***


Профиль
Группа: Завсегдатай
Сообщений: 1262
Регистрация: 14.2.2006
Где: Москва

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



Код
for
    $a in /myxml
return <html>
    <body>{
        for $b in (
            $a/name,
            $a/email,
            $a/year_birth,
            $a/sex,
            $a/col
        ) return
            <div>
                <label>{
                    switch($b/name()) 
                        case "name" return "Имя"
                        case "email" return "E-mail"
                        case "sex" return "Пол"
                        case "col" return "Количество конечностей"
                        case "extra_p" return "Сверх-способности"
                        default return ""
                }</label> <span>{$b/text()}</span>
            </div>
    }
    <div>
        <label>Биография</label>
        <xmp>{$a/biography/text()}</xmp>
    </div>
    {
        for $b in ($a/familiar[text()="on"])
            return <div>
                <label>Подпись не помню</label>
            </div>
    }
    </body>
</html>

Отлажено в BaseX, работает.
Вставил в XSLT - не работает.
PM MAIL ICQ Skype   Вверх
magelan
Дата 23.11.2011, 10:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


потерял xPath
**


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

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



поправил сверху
Код

<?xml version="1.0" encoding="windows-1251"?>

 и MIT-овский парсер и эксплорер сразу проглотили ваш код без изменений и ошибок

не верите - что кодировка, избавьтесь от русских букв, напишите код в ascii и все будет работать.
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "XML/XSLT"
diadiavova

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

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

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

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


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

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


 




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


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.