powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / XML, XSL, XPath, XQuery [игнор отключен] [закрыт для гостей] / Выбор одного или другого аттрибута
9 сообщений из 9, страница 1 из 1
Выбор одного или другого аттрибута
    #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
Выбор одного или другого аттрибута
    #34976965
TiG
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
либо
Код: plaintext
//COLLECT_V/@gng_name | //COLLECT_V/@name_gng
либо если других атрибутов быть не может, то просто
Код: plaintext
//COLLECT_V/@*
...
Рейтинг: 0 / 0
Выбор одного или другого аттрибута
    #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
Выбор одного или другого аттрибута
    #34977384
XX_78
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Спасибо, что подсказали, у меня всё вышло
...
Рейтинг: 0 / 0
Выбор одного или другого аттрибута
    #34977390
XX_78
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Не вышло
...
Рейтинг: 0 / 0
Выбор одного или другого аттрибута
    #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
Выбор одного или другого аттрибута
    #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
Выбор одного или другого аттрибута
    #34978757
XX_78
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
СПАСИБО!!!!
...
Рейтинг: 0 / 0
Выбор одного или другого аттрибута
    #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
9 сообщений из 9, страница 1 из 1
Форумы / XML, XSL, XPath, XQuery [игнор отключен] [закрыт для гостей] / Выбор одного или другого аттрибута
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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