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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> смешанная ссылка href в xsl 
:(
    Опции темы
yalo
Дата 12.8.2012, 21:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


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

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



Не могу сообразить как надо оформить xsl, чтобы не было ошибки:
Код

Warning: DOMDocument::load() [domdocument.load]: attributes construct error in file:///Z:/...*.xsl, line: 7 in Z:\home\...\www\...*.php on line 56
Warning: DOMDocument::load() [domdocument.load]: Couldn't find end of Start Tag a line 7 in file:///Z:/...*.xsl, line: 7 in Z:\home\...*.php on line 56

Warning: DOMDocument::load() [domdocument.load]: Opening and ending tag mismatch: value-of line 7 and a in file:///Z:/...*.xsl, line: 7 in Z:\home\...*.php on line 56

Вот шаблон xsl:
Код

<?xml version="1.0" encoding="UTF-8" ?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template match="/">
<table>
    <tr>
    <xsl:for-each select="/head_tbl/td_cell">
        <td><a href="index.php?sort="<xsl:value-of select="@name_tbl">&typefld="<xsl:value-of select="@typefld">"><xsl:value-of select="@name"/></a></td>
    </xsl:for-each>
    </tr>
    <tr>
    <xsl:for-each select="/tbl/elem">
        <tr>
            <xsl:for-each select="*">
                <td><xsl:value-of select="*"/></td>
            </xsl:for-each>
        </tr>
    </xsl:for-each>
    </tr>
</table>
</xsl:template>
</xsl:stylesheet>

А вот xml:
Код

<?xml version="1.0" encoding="utf-8"?>
<head_tbl>
    <td_cell name_tbl="id" ord="1" name="Уник. идентиф." typefld="0" sortflag="1" link=""/>
    <td_cell name_tbl="login" ord="2" name="Логин" typefld="2" sortflag="1" link=""/>
    <td_cell name_tbl="surname" ord="3" name="Фамилия" typefld="2" sortflag="1" link=""/>
    <td_cell name_tbl="name1" ord="4" name="Имя" typefld="2" sortflag="1" link=""/>
    <td_cell name_tbl="name2" ord="5" name="Отчество" typefld="2" sortflag="1" link=""/>
    <td_cell name_tbl="passw" ord="6" name="Пароль" typefld="4" sortflag="0" link=""/>
</head_tbl>
<tbl>
    <elem>
        <id>1</id>
        <login>ivanova</login>
        <surname>Иванова</surname>
        <name1>Ольга</name1>
        <name2>Владимировна</name2>
        <passw>ldrkgjlrjkth </passw>
    </elem>
    <elem>
        <id>2</id>
        <login>petrova</login>
        <surname>Петрова</surname>
        <name1>Анастасия</name1>
        <name2>Михайловна</name2>
        <passw>kldhgkrh </passw>
    </elem>
</tbl>


После преобразования должно получится что-то вроде этого:
Код

<table>
    <tr>
        <td><a href="index.php?ord=id&typefld=0">Уник. идентиф.</a></td>
        <td><a href="index.php?ord=login&typefld=2">Логин</a></td>
        <td><a href="index.php?ord=surname&typefld=2">Фамилия</a></td>
        <td><a href="index.php?ord=name1&typefld=2">Имя</a></td>
        <td><a href="index.php?ord=name2&typefld=2">Отчество</a></td>
        <td>Пароль</td>
    </tr>
    <tr>
        <td>1</td>
        <td>ivanova</td>
        <td>Иванова</td>
        <td>Ольга</td>
        <td>Владимировна</td>
        <td>Петрова</td>
    </tr>
    <tr>
        <td>2</td>
        <td>petrova</td>
        <td>Петрова</td>
        <td>Анастасия</td>
        <td>Михайловна</td>
        <td>kldhgkrh</td>
    </tr>
</table>

Я понимаю, что в строчке шаблона:
Код

        <td><a href="index.php?sort="<xsl:value-of select="@name_tbl">&typefld="<xsl:value-of select="@typefld">"><xsl:value-of select="@name"/></a></td>

надо как-то корректно обработать кавычки, амперсанды, знаки вопроса и возможно "крышки" < и >. Но я не могу сообразить, как это сделать. Подскажите, пожалуйста.

Это сообщение отредактировал(а) yalo - 12.8.2012, 21:59
PM MAIL ICQ   Вверх
diadiavova
Дата 12.8.2012, 22:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Доктор Зло(диагност, настоящий, с лицензией и полномочиями)
****


Профиль
Группа: Модератор
Сообщений: 5821
Регистрация: 14.8.2008
Где: В Коньфпольте

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



Совсем недавно такой же вопрос был
http://forum.vingrad.ru/forum/topic-354991.html


--------------------
Хочешь получить мудрый совет - читай подписи участников форумов.
Злой доктор Щасзаболит smile
PM   Вверх
magelan
Дата 17.10.2012, 13:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


потерял xPath
**


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

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



Еще развернутая нотация бывает полезна, когда необходимы проверки:
Код

<a>
    <xsl:attribute name="HREF">
        <xsl:text>index.php?sort=</xsl:text>
        <xsl:value-of select="@name_tbl">
        <xsl:text>&amp;typefld=</xsl:text>
        <xsl:value-of select="@typefld">
    </xsl:attribute>
    <xsl:value-of select="@name"/>
</a>

PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "XML/XSLT"
diadiavova

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

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

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

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


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

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


 




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


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

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