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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Выводится всё тело DOM, Дублируется нужная и ненужная информация 
:(
    Опции темы
ossorian
Дата 7.2.2014, 08:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Выручайте!
Вот такой простой код XSLT:

Код

<xsl:template match="structure[@id=219]">
     И внутри код отображения нужной информации...
</xslt:template>


Выдаёт и нужную информацию и повторяет тело самого XML документа.
Уже всю голову сломал - как это возможно, почему? Ни одно инструкции для этого не вижу... Похожий файл, с которого всё копировал весь  просмотрел, но логики не вижу - нет там никакой доп. инструкции, чтобы не выводить этот текст.  smile 
PM MAIL WWW   Вверх
Bulat
Дата 7.2.2014, 22:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


татарский Нео
***


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

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



ossorian, а xml посмотреть можно?


--------------------
менеджер по кодеврайтингу  smile 
PM MAIL WWW   Вверх
ossorian
Дата 10.2.2014, 06:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Цитата(Bulat @ 7.2.2014,  22:33)
ossorian, а xml посмотреть можно?

Здравствуйте, он громоздкий - потому вынес сюда: 
http://akfa.ru/test/left_menu.xml
Формируется через Host CMS

А вот XSLT такой:

 
Код

<?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:output xmlns="http://www.w3.org/TR/xhtml1/strict" doctype-public="-//W3C//DTD XHTML 1.0 Strict//EN" encoding="utf-8" indent="yes" method="html" omit-xml-declaration="no" version="1.0" media-type="text/xml"/>
    
    <!-- ЛевоеМеню -->
<!--<xsl:apply-templates select="structure[@id=219]"/>-->
<xsl:template match="structure[@id=219]">
    <div id="content_menu">
        
        <xsl:variable name="current_structure_id" select="./current_structure_id"/>
        <h1><xsl:value-of select="./name" /></h1>
    
        <ul id="left_page_menu">
        <xsl:for-each select="/document/structure[@id=219]/structure[show=1]">
            <xsl:variable name="link" select="./link"/>
            <xsl:variable name="link_id" select="@id"/>
            <li>
                <xsl:choose>
                    <xsl:when test="$current_structure_id=$link_id">
                        <span style="color:black;"><xsl:value-of disable-output-escaping="yes"  select="./name" /></span>
                    </xsl:when>
                    <xsl:otherwise>
                        <a href="{$link}"><xsl:value-of select="./name" /></a>
                    </xsl:otherwise>
                </xsl:choose>
                
                <xsl:choose>
                    <xsl:when test="structure[show=1]">
                    <ul>
                        <xsl:for-each select="./structure[show=1]">
                        <li>
                            <xsl:variable name="link2" select="./link"/>
                            <xsl:variable name="link_id2" select="@id"/>
                            <xsl:choose>
                                <xsl:when test="$current_structure_id=$link_id2">
                                    <span style="color:black;"><xsl:value-of select="./name" /></span>
                                </xsl:when>
                                <xsl:otherwise>
                                    <a href="{$link2}"><xsl:value-of disable-output-escaping="yes"  select="./name" /></a>
                                </xsl:otherwise>
                            </xsl:choose>
                        </li>    
                        </xsl:for-each>
                    </ul>
                    </xsl:when>
                </xsl:choose>
            </li>
        </xsl:for-each>
        </ul>
        
    </div>
</xsl:template>
    
</xsl:stylesheet>


Результат (printscreen) - тут: user posted image

Т.е. выводится как раз то самое меню, которое нужно, но одновременно с этим выводится и весь DOM - документ. По каким причинам - никак не могу понять  smile . Я уже готов даже денежно помочь  smile 
PM MAIL WWW   Вверх
diadiavova
Дата 11.2.2014, 00:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


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


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

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



Цитата(ossorian @  10.2.2014,  07:29 Найти цитируемый пост)
А вот XSLT такой:

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

<xsl:template match="/">
    <xsl:apply-templates select="//structure[@id=219]"/>
</xsl:template>



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


Новичок



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

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



Цитата(diadiavova @  11.2.2014,  00:36 Найти цитируемый пост)
Попробуй добавить такой шаблон

Доктор Зло, вы гений!  smile 
Правда чуть подправил - "/structure[@id=219]" - с одним слэшем - тогда текст исчез. С двумя отображался, но в меньшем количестве.
Слетело определение текущего элемента - но это уже мелочи, буду править напильником.
PM MAIL WWW   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "XML/XSLT"
diadiavova

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

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

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

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


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

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


 




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


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

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