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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Помогите пож-та сделать SelectNodes 
:(
    Опции темы
svch
Дата 13.12.2010, 13:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Код

<ГРУППА КОД="1" НАИМЕНОВАНИЕ="ИМЯ1">
    <ГРУППА КОД="11" НАИМЕНОВАНИЕ="ИМЯ11">
        <ЭЛЕМЕНТ КОД="11111" БРЕНД="Россия">
        
        </ЭЛЕМЕНТ>
        <ЭЛЕМЕНТ КОД="22222" БРЕНД="Россия1">
        
        </ЭЛЕМЕНТ>
        <ЭЛЕМЕНТ КОД="33333" БРЕНД="Россия2">
        
        </ЭЛЕМЕНТ>
    </ГРУППА>
    <ГРУППА КОД="111" НАИМЕНОВАНИЕ="ИМЯ111">
        <ЭЛЕМЕНТ КОД="44444" БРЕНД="Россия3">
        
        </ЭЛЕМЕНТ>
        <ЭЛЕМЕНТ КОД="55555" БРЕНД="Россия1">
        
        </ЭЛЕМЕНТ>
        <ЭЛЕМЕНТ КОД="66666" БРЕНД="Россия2">
        
        </ЭЛЕМЕНТ>
    </ГРУППА>
    <ГРУППА КОД="1111" НАИМЕНОВАНИЕ="ИМЯ1111">
        <ЭЛЕМЕНТ КОД="77777" БРЕНД="Россия">
        
        </ЭЛЕМЕНТ>
        <ЭЛЕМЕНТ КОД="88888" БРЕНД="Россия2">
        
        </ЭЛЕМЕНТ>
        <ЭЛЕМЕНТ КОД="99999" БРЕНД="Россия2">
        
        </ЭЛЕМЕНТ>
    </ГРУППА>
</ГРУППА>
<ГРУППА КОД="2" НАИМЕНОВАНИЕ="ИМЯ2">
    <ГРУППА КОД="11" НАИМЕНОВАНИЕ="ИМЯ11">
        <ЭЛЕМЕНТ КОД="123" БРЕНД="Россия2">
        
        </ЭЛЕМЕНТ>
        <ЭЛЕМЕНТ КОД="321" БРЕНД="Россия3">
        
        </ЭЛЕМЕНТ>
        <ЭЛЕМЕНТ КОД="345" БРЕНД="Россия2">
        
        </ЭЛЕМЕНТ>
    </ГРУППА>
    <ГРУППА КОД="111" НАИМЕНОВАНИЕ="ИМЯ111">
        <ЭЛЕМЕНТ КОД="64534" БРЕНД="Россия1">
        
        </ЭЛЕМЕНТ>
        <ЭЛЕМЕНТ КОД="67543" БРЕНД="Россия1">
        
        </ЭЛЕМЕНТ>
        <ЭЛЕМЕНТ КОД="3756" БРЕНД="Россия">
        
        </ЭЛЕМЕНТ>
    </ГРУППА>
    <ГРУППА КОД="1111" НАИМЕНОВАНИЕ="ИМЯ1111">
        <ЭЛЕМЕНТ КОД="2356" БРЕНД="Россия">
        
        </ЭЛЕМЕНТ>
        <ЭЛЕМЕНТ КОД="9854" БРЕНД="Россия">
        
        </ЭЛЕМЕНТ>
        <ЭЛЕМЕНТ КОД="4763" БРЕНД="Россия3">
        
        </ЭЛЕМЕНТ>
    </ГРУППА>
</ГРУППА>


Так не пашет:

Код

Set colNodes = xmlParser.selectNodes("//Группа[@Код='" & current_id & "']/descendant-or-self::Группа/Элемент[@Бренд='" & Request("brand") & "']")


Добрый день !
Подскажите пож-та, как мне правильно сделать SelectNodes ?
Известен КОД главной ГРУППЫ (например, код=1 или код=2) и БРЕНД в ЭЛЕМЕНТЕ. А мне надо получить список ГРУПП, где есть такие ЭЛЕМЕНТы. Вложений ГРУПП в ГРУППЫ может быть много.

Большое спасибо.
С уважением, Сергей.
PM MAIL   Вверх
diadiavova
Дата 13.12.2010, 13:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


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


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

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



svch, У тебя регистр символов в выражении не такой как в документе.


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


Шустрый
*


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

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



Это я xml для примера неправильно написал. По регистру там все в порядке. А вот с самим селектом как-то не очень :(

С уважением, Сергей.
PM MAIL   Вверх
diadiavova
Дата 13.12.2010, 19:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


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


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

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



Ну вот как-то так я думаю, если правильно все понял. Я со статическими значениями дал, там с переменными уже сам построй строку.
//Группа[@Код='1']//Группа[./Элемент[@Бренд='Россия1']]

Это сообщение отредактировал(а) diadiavova - 13.12.2010, 19:52


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


Шустрый
*


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

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



1. Я не уверен, но по-моему descendant-or-self просматривает как бы все вложенные (дочерние) объекты, а не только первого уровня. Но я могу и ошибаться, конечно.
2. Да, пробовал и со статикой. Результат тот же.
PM MAIL   Вверх
diadiavova
Дата 13.12.2010, 20:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


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


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

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



Цитата(svch @  13.12.2010,  20:09 Найти цитируемый пост)
. Я не уверен, но по-моему descendant-or-self просматривает как бы все вложенные (дочерние) объекты, а не только первого уровня. Но я могу и ошибаться, конечно.

Собственно эта проблема вполне решется двойным слешем, это короткая форма оси descendant. 

Цитата(svch @  13.12.2010,  20:09 Найти цитируемый пост)
Да, пробовал и со статикой. Результат тот же. 

А что-то типа того, что я привел пробовал?


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


Шустрый
*


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

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



Цитата

А что-то типа того, что я привел пробовал? 


Да, все работает так, как нужно !
Огромное спасибо.

С уважением, Сергей.

Добавлено через 6 минут и 18 секунд
Код

[./Элемент

Подскажите, а что тут точка впереди означает ?
PM MAIL   Вверх
diadiavova
Дата 14.12.2010, 01:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


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


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

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



Цитата(svch @  14.12.2010,  00:52 Найти цитируемый пост)
Подскажите, а что тут точка впереди означает ? 

Ссылка на сам элемент к которому применяется фильтр(в данном случае "Группа").


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


Шустрый
*


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

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



Все таки немного не так получилось.
При таком коде:
Код

Set colNodes = xmlParser.selectNodes("//Группа[@Код='" & current_id & "']//Группа[./Элемент[@Бренд='" & Request("brand") & "']]")

показываются абсолютно все группы, включая вложенные многократно. А мне нужно только группы как бы второго уровня, т.е. только те, что идут после главных и все.
Код

<ГРУППА КОД="1" НАИМЕНОВАНИЕ="ИМЯ1">
    <ГРУППА КОД="2" НАИМЕНОВАНИЕ="ИМЯ2">
    <ГРУППА КОД="3" НАИМЕНОВАНИЕ="ИМЯ3">
        <ГРУППА КОД="4" НАИМЕНОВАНИЕ="ИМЯ4">
         <ЭЛЕМЕНТ КОД="11111" БРЕНД="Россия">
        
         </ЭЛЕМЕНТ>


Т.е. зная Код = 1 и Бренд = "Россия" мне нужно получить только группу с Кодом = 2 и ей подобных. А у меня сейчас Код2, Код3 и Код4.

Буду очень признателен.
С уважением, Сергей.
PM MAIL   Вверх
diadiavova
Дата 15.12.2010, 16:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


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


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

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



Так идея то та же самая. Просто помести вложенные группы в условие, ну если переделывать мой пример. то вот так это примерно будет выглядеть.
Код

//Группа[@Код='1' and .//Группа/Элемент[@Бренд='Россия1']]



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


Шустрый
*


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

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



Да, все сработало.
А есть ли в xmlParser.selectNodes какая-нибудь там ф-я, которая убирает пробелы ? Типа Trim-а ? Ну т.е. если у меня в xml-е данные с пробелами на конце или в начале - она их обрезает ?
И можно ли о них (ф-ях) почитать где-нибудь ?
А то тут понадобилось, прогуглил и нашел, например, translate функцию.

Большое спасибо.
С уважением, Сергей.
PM MAIL   Вверх
diadiavova
Дата 15.12.2010, 16:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


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


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

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



В XPath - нет. А вообще вот тут неплохой справочник
http://msdn.microsoft.com/ru-ru/library/ms...iewDropDownText


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

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

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

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

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


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

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


 




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


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

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