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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Err: Variable pIndex5 has not declared 
:(
    Опции темы
Iren21
Дата 16.4.2013, 10:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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




Хочу в условии(<xsl:if test="$pIndex5 = 5"/>) использовать определенную выше переменную 
(<xsl:variable name="pIndex5" select="5"/>), но выводит ошибку! 
Подскажите, как с этим справиться

Код


<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
    <xsl:template match="/">    <!--5 7 21-->
        <xsl:text>
        </xsl:text>
        <xsl:for-each select="Table/Row">
            <xsl:for-each select="Cell">
                <xsl:variable name="pIndex" select="@Index"/>                 
                                            
                <xsl:variable name="pIndex7"/>
                
                <xsl:if test="$pIndex = 5">
                    <xsl:variable name="pIndex5" select="5"/>
                    <xsl:variable name="pData5" select="Data"/>
                </xsl:if>
                <xsl:if test="$pIndex = 7">
                    <xsl:if test="$pIndex5 = 5"/> <!--Ошибка в этой строке-->
                        <xsl:variable name="pData7" select="Data"/>
                    </xsl:if>
                </xsl:if>
            </xsl:for-each>           
        </xsl:for-each>
    </xsl:template>
</xsl:stylesheet>     

PM MAIL   Вверх
diadiavova
Дата 16.4.2013, 10:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


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


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

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



Все дело в области видимости:  пиндекс5 объявлена в блоке иф, стало быть там и нужно её использовать, а за пределами этого блока она не видна.


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


Новичок



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

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



По сути проблема такая:
Идем по Row, если пройдя цикл Index встретился со значениями 3,5,21 (должны присутствовать все значения), то запоминает значения в теге <Data>наше значение</Data> и потом выводим их


Код

<Row>
    <Cell Index="3" StyleID="21"><Data Type="String">245</Data></Cell>
    <Cell Index="5" StyleID="21"><Data Type="String">Занько Никита Георгиевич</Data></Cell>
    <Cell Index="7" StyleID="21"><Data Type="String">06.10.1979</Data></Cell>
    <Cell StyleID="21"><Data Type="String">гор. Ленинград</Data></Cell>
    <Cell Index="10" StyleID="21"><Data Type="String">Мужской</Data></Cell>
    <Cell Index="12" StyleID="21"><Data Type="String">РОССИЯ</Data></Cell>
    <Cell Index="14" StyleID="21"><Data Type="String">Санкт-Петербург г,  Фрунзенский р-н, пр-кт Волковский, д. 8, кв 18</Data></Cell>
    <Cell Index="18" StyleID="21"><Data Type="String">Паспорт гражданина Российской Федерации</Data></Cell>
    <Cell Index="21" StyleID="21"><Data Type="String">4012 579103</Data></Cell>
   </Row>

PM MAIL   Вверх
diadiavova
Дата 16.4.2013, 11:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


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


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

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



Так в чём затруднение? Отобрать строки, в которых присутствуют все эти индексы? 


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


Новичок



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

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



Так проблема как раз в переопределении переменной! Нужно собрать данные в строках с индексами 3, 5, 21, но только при условии, если эти 3 строки встретилсь в коде, если их нет, то ничего не делать. 
Хотел сделать так: объявить пустые переменные, и если в коде встречаем нужный индекс, то в переменную идет запись, после онализируем, все ли переменные заполнены и если да, то выводим собранный результат. Но проблема в том, что переопределить описанную переменную не получается. Других вариантов как это сделать - не знаю!
Если есть возможность выцепить нужные значения - покажи плиз, как это сделать!
PM MAIL   Вверх
diadiavova
Дата 16.4.2013, 12:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


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


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

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



Во-первых, забудь о переменных, циклах и прочей лабуде, поскольку это функциональный язык и здесь ничего этого не( даже не смотря на имена элементов типа variable). Во-торых, ты так и не сырмулировал точно суть пооблемы. Насколько я понял, заключается проблема именно в отборе строк, в которых присутствуют все три индекса. Делается это путём задания более точного критерия отбора строк, то есть надо использовать фильтр по строкам. Вместо 
Код

//Table/Row
Надо писать что-то типа
Код

//Table/Row[Cell[@Index = '3'] and Cell[@Index = '5'] and Cell[@Index = '21'] ]
Код не проверял, но идея должна быть понятна.


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

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

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

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

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


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

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


 




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


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

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