Парсинг множественных тэгов XML в Postgres
От: irbis3003  
Дата: 14.03.19 09:59
Оценка:
Добрый день!

При парсинге xml столкнулся с проблемой разбора множественных тэгов. Т.е. единичные возвращаются корректно, а если тэг повторяется — не происходит умножения данных (как я предполагал), а возвращается ошибка
"21000 выражение XPath, отбирающее столбец, возвратило более одного значения".

Данные лежат в таблице, фрагмент xml (точки для наглядного форматирования, еслифчто ):

<head>
......<folder>
..............<folder_id>1</folder_id>
..............<tag1>0<tag1>
..............<tag1>1<tag1>
..............<tag1>2<tag1>
......</folder>
</head>



скрипт:

select s.*
from test.t_files f,
    xmltable('//head/folder' passing cast(f.filedata as xml)
    columns
        folder_id integer path 'folder_id',
        tag1 integer path 'tag1'
) s


На выходе хочется получить:

folder_id tag1
1 0
1 1
1 2
В документации не нашел про множественные тэги ничего.

Как скорректировать скрипт?
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.