Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Помогите в парсинге XML / 10 сообщений из 10, страница 1 из 1
29.09.2017, 13:06
    #39528277
ultrasonic7
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите в парсинге XML
Доброго времени суток, уважаемые форумчане! Написал простенький скрипт, который создаёт объект типа XMLType и затем выводит на консоль значение. Проблема в том, что значение book_id выводится пустое, а должно выводиться 269. Где может скрываться проблема?
...
Рейтинг: 0 / 0
29.09.2017, 13:07
    #39528278
ultrasonic7
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите в парсинге XML
Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
declare
iAppend XMLType;
oAppend schematest.books%ROWTYPE;
begin
  select XMLType(
  '<books>
     <book_id>269</book_id>
     <title>Oracle SQL*Loader</title>
     <author>Jonathan Gennick</author>
  </books>') into iAppend 
  from dual;

   SELECT  BOOK_ID
         , TITLE
         , AUTHOR
   INTO  oAppend.BOOK_ID
         , oAppend.TITLE
         , oAppend.AUTHOR
   FROM XMLTABLE ('/books'--'*'
                  PASSING iAppend
                  COLUMNS   BOOK_ID       number PATH 'book_id/@value'
                          , TITLE       VARCHAR2(4000 CHAR) PATH 'title/@value' 
                          , AUTHOR      VARCHAR2(4000 CHAR) PATH 'author/@value' );
   DBMS_OUTPUT.PUT_LINE(oAppend.BOOK_ID);
 EXCEPTION 
   WHEN NO_DATA_FOUND THEN  DBMS_OUTPUT.PUT_LINE('NO_DATA_FOUND');
   WHEN TOO_MANY_ROWS THEN  DBMS_OUTPUT.PUT_LINE('TOO_MANY_ROWS');  
 
end;
...
Рейтинг: 0 / 0
29.09.2017, 13:08
    #39528281
ultrasonic7
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите в парсинге XML
Соответственно таблица books определена так:
...
Рейтинг: 0 / 0
29.09.2017, 13:08
    #39528283
ultrasonic7
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите в парсинге XML
Код: plsql
1.
2.
3.
4.
5.
6.
CREATE TABLE SCHEMATEST.books
(
  BOOK_ID  NUMBER,
  TITLE VARCHAR2(4000 CHAR),
  AUTHOR VARCHAR2(4000 CHAR)
)
...
Рейтинг: 0 / 0
29.09.2017, 13:15
    #39528292
env
env
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите в парсинге XML
ultrasonic7,

Код: plsql
1.
2.
3.
                  COLUMNS   BOOK_ID       number PATH 'book_id'
                          , TITLE       VARCHAR2(4000 CHAR) PATH 'title' 
                          , AUTHOR      VARCHAR2(4000 CHAR) PATH 'author' );
...
Рейтинг: 0 / 0
29.09.2017, 13:15
    #39528295
AmKad
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите в парсинге XML
ultrasonic7
Код: plsql
1.
/@value

Это лишнее.
...
Рейтинг: 0 / 0
29.09.2017, 13:23
    #39528304
ultrasonic7
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите в парсинге XML
env , AmKad , спасибо! Убрал эту последовательность - значения стали извлекаться и выводиться. Я за образец брал кусок стороннего кода. А зачем вообще эта @value может понадобиться?
...
Рейтинг: 0 / 0
29.09.2017, 13:31
    #39528312
Есть вопрос
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите в парсинге XML
ultrasonic7,
Это получение атрибута xml-элемента, т.е @author, например это <book author="T.Kyte"></book>
...
Рейтинг: 0 / 0
29.09.2017, 13:33
    #39528316
ultrasonic7
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите в парсинге XML
И в какой книге лучше всего описан парсинг XML средствами Oracle? С записью в таблицы и всё такое. Кроме официальной документации Оракла, конечно) Хочу почитать что-то на русском по этой теме.
...
Рейтинг: 0 / 0
29.09.2017, 13:36
    #39528323
ultrasonic7
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите в парсинге XML
Есть вопрос , я понял. Так как у меня в xml-ке нет атрибутов, только элементы, то и @value не нужен.
...
Рейтинг: 0 / 0
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Помогите в парсинге XML / 10 сообщений из 10, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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