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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> пространство дейсвия template 
:(
    Опции темы
Lionli
Дата 26.11.2009, 18:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Доброго дня,
хотелось бы понять, каково пространство у template.
в исходном тексте
Код

<doc>
<ent><wrd>ААА</wrd><pth type="ad."><syn>ааа</syn></pth></ent>
<ent><wrd>BBB</wrd><pth type="av."><syn>bbb</syn></pth></ent>
<ent><wrd>CCC</wrd><pth type="a."><syn>ccc</syn></pth></ent>
</doc>

нужно чтобы <wrd> выводилось, только при условии, что pth[@type='ad.
но при таком коде:
Код

<xsl:output method="xml" indent="yes"/>

    <xsl:template match="/">
        <xsl:apply-templates select= "//ent"/>
    </xsl:template>

    <xsl:template match="//wrd">
        <xsl:if test="//pth[@type='ad.']">
            <xsl:apply-templates />
        </xsl:if>
    </xsl:template>

    <xsl:template match="//pth[@type='ad.']">
        <xsl:apply-templates />
    </xsl:template>

 <xsl:template match="//pth[@type!='ad.']"/>

</xsl:stylesheet>

на выходе 
ААА
   ааа
BBB
CCC
то есть, условие <xsl:if test="//pth[@type='ad.']"> срабатывает, если оно находится  в любом месте текста, а не в данной строке <ent>...</ent>, т.е. выходит за пределы одной строки. Нужно же, чтобы это срабатывало только в рамках одного <ent>...</ent>... то есть
ААА
   ааа


Это сообщение отредактировал(а) Lionli - 26.11.2009, 18:20
PM MAIL   Вверх
diadiavova
Дата 26.11.2009, 19:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


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


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

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



А разве в предыдущем топике я на этот вопрос не ответил?


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


Новичок



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

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



видимо я что-то недопонял.

но вот так, работает, кажися
Код

    <xsl:template match="//pth[@type!='ad.']"/>

    <xsl:template match="//ent">
            <xsl:if test="count(.//pth[@type='ad.'])!=0 ">
                <xsl:apply-templates />
            </xsl:if>
    </xsl:template>

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

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

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

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

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


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

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


 




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


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

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