Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / XML, XSL, XPath, XQuery [игнор отключен] [закрыт для гостей] / Выбор одного или другого аттрибута / 9 сообщений из 9, страница 1 из 1
29.11.2007, 18:16
    #34976133
XX_78
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Выбор одного или другого аттрибута
Подскажите, можно ли одним NodeIterator выбрать одно из двух значений.
У меня есть тег, в нём аттр. может называться или name_gng или gng_name, а мне необходимо выудить информацию из него.
Для примера:
Код: plaintext
<COLLECT_V name_gng="22">
или
Код: plaintext
<COLLECT_V gng_name="22">
Я пробую "выудить" так
Код: plaintext
1.
NodeIterator nodeGng_name = XPathAPI.selectNodeIterator(document,"//COLLECT_V/[@gng_name or @name_gng]");
...
Рейтинг: 0 / 0
30.11.2007, 09:21
    #34976965
TiG
TiG
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Выбор одного или другого аттрибута
либо
Код: plaintext
//COLLECT_V/@gng_name | //COLLECT_V/@name_gng
либо если других атрибутов быть не может, то просто
Код: plaintext
//COLLECT_V/@*
...
Рейтинг: 0 / 0
30.11.2007, 11:16
    #34977362
XX_78
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Выбор одного или другого аттрибута
Пардон. Не прав.задала вопрос. У меня есть:
Код: plaintext
1.
2.
3.
4.
5.
6.
*************
<COLLECT_V name_gng="45" >
<COLLECT_V name_gng="22" gng_name="22">
<COLLECT_V name_gng="33" gng_name="33">
<COLLECT_V gng_name="3">
**************
Мне необходимо получить результат:
Код: plaintext
1.
2.
3.
name= 45 
name= 22 
name= 33 
name= 3 
И это сделать с пом. NodeIterator
Используя
Код: plaintext
//COLLECT_V/@gng_name | //COLLECT_V/@name_gng
выбираются значения gng_name и name_gng
...
Рейтинг: 0 / 0
30.11.2007, 11:21
    #34977384
XX_78
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Выбор одного или другого аттрибута
Спасибо, что подсказали, у меня всё вышло
...
Рейтинг: 0 / 0
30.11.2007, 11:23
    #34977390
XX_78
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Выбор одного или другого аттрибута
Не вышло
...
Рейтинг: 0 / 0
30.11.2007, 11:48
    #34977482
XX_78
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Выбор одного или другого аттрибута
Я пишу так
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
***********
NodeIterator nodeGng_name = XPathAPI.selectNodeIterator(document,"//COLLECT_V/@gng_name|//COLLECT_V/@name_gng");
          Node Gng_name;
          while ((Gng_name=nodeGng_name.nextNode())!=null)
          {
             gng_name = Gng_name.getNodeValue();
          }
nodeGng_name = XPathAPI.selectNodeIterator(document,"//COLLECT_V/@gng_name|//COLLECT_V/@name_gng"); 
Gng_name=null;

NodeIterator nodeCOLLECT_V = XPathAPI.selectNodeIterator(document,"//COLLECT_V");
Node COLLECT_V;
          while ((COLLECT_V =nodeCOLLECT_V.nextNode())!=null)
          {
               if ((Gng_name=nodeGng_name.nextNode())!=null)
               {
                   gng_name = Gng_name.getNodeValue();
               }
               System.out.println(gng_name );
******************
И мне выводит:
1. если в теге есть только gng_name или name_gng, всё правильнож
2. если есть то и другое, то только значения первого тега, причём столько сколько всего тегов
...
Рейтинг: 0 / 0
30.11.2007, 13:30
    #34977969
maXmo
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Выбор одного или другого аттрибута
что тебя так колбасит? Проще надо быть, проще.
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
NodeIterator icv = XPathAPI.selectNodeIterator(document,"//COLLECT_V");
Node cv;
while ((cv=icv.nextNode())!=null)
{
 gng_name = cv.getAttribute("gng_name");
 if (gng_name==null)
 {
  gng_name = cv.getAttribute("name_gng");
 }
 System.out.println(gng_name);
...
Рейтинг: 0 / 0
30.11.2007, 16:36
    #34978757
XX_78
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Выбор одного или другого аттрибута
СПАСИБО!!!!
...
Рейтинг: 0 / 0
03.12.2007, 17:33
    #34983079
XX_78
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Выбор одного или другого аттрибута
Вот так срабатывает без ошибок:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
NodeIterator icv = XPathAPI.selectNodeIterator(document,"//COLLECT_V");
Node cv;
while ((cv=icv.nextNode())!=null)
{
     if (cv.getAttributes().getNamedItem("name_gng")!=null)
     {
            gng_name=cv.getAttributes().getNamedItem("name_gng").getNodeValue();
     }
     else
    {
           gng_name=cv.getAttributes().getNamedItem("gng_name").getNodeValue();
    }
    System.out.println(gng_name);
}
...
Рейтинг: 0 / 0
Форумы / XML, XSL, XPath, XQuery [игнор отключен] [закрыт для гостей] / Выбор одного или другого аттрибута / 9 сообщений из 9, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]