Xpath - можно ли узнать кол-во нод?
Релиб
Форумы       Участники    Календарь    Кто он-лайн?
Добро пожаловать, гость ( Вход | Регистрация )
        



Xpath - можно ли узнать кол-во нод? Expand / Collapse
Автор
Сообщение
11.09.2007 16:18
новичок

новичокновичокновичокновичокновичокновичокновичокновичок

участник
Last Login: 11.09.2007 15:58
Сообщ.: 5, Visits: 29
Имеем в переменной l_clob -  текст в xml структуре.

Нужно подсчитать кол-во нод (l_nodecnt)  по такому пути:  /header/filename

1. Если делать через XMLDOM:

l_doc       dbms_xmldom.DOMDocument;

l_nodelst   bms_xmldom.DOMNodeList;

l_doc         := dbms_xmldom.newDOMDocument(l_clob);

l_nodelst    := dbms_xmldom.getElementsByTagName(dbms_xmldom.getDocumentElement(doc),   '/header/filename')

l_nodecnt   := dbms_xmldom.getLength(l_nodelst) ;

2.  А можно ли выполнить подсчет используя  xpath в цикле?  Ловя исключение на несуществующей ноде?

for i in 0..N loop

    begin

      select xmltype(l_clob).extract('//header['||to_char(i)||']/filename/text()').getStringVal() 
      from dual;

   exception when .....

   end;

end loop;

 Проблема в том, что любая ф-ция типа extract - возвращает пусто при несуществующей ноде. Есть ли альтернатива этому?

Сообщ. #915873
« пред. тема | след. тема »


Эту тему читают Expand / Collapse
Посетители: 0 (0 гостей, 0 участников, 0 скрыт.участников)
Сейчас нет участников, просматривающих тему.
Модераторы: Alexey, boombastik, bazile, pl

Время GMT +3:00, Сейчас 2:21