|
|
|
OpenXML в ASA
|
|||
|---|---|---|---|
|
#18+
Не могу разобраться, как мне еще нужно попрыгать с бубном, чтобы достичь цель. Есть XML: <a><b>test1</b><c>a"test3</c></a> Выполняем запрос: SELECT * FROM OPENXML( '<a><b>test1</b><c>"test3</c></a>', '//*' ) WITH (id INT '@mp:id', parent INT '../@mp:id', name CHAR(20) '@mp:localname', text LONG VARCHAR 'text()', node LONG VARCHAR 'node()', point LONG VARCHAR '.') order by id (оформление специально не включал, т.к. пропадает ключевой момент) Получаем результат: idparentnametextnodepoint2(NULL)a(NULL)test1test1a"test352btest1test1test1172caaa"test3 А всего-то мне нужно вместо последних трех получить такой столбец: result(NULL)test1a"test3 Насколько я знаю, передача в XML тегах значений вида " нормальна, однако АСА ее съедает. Более того, если в тексте стоит », то вообще вылезает ошибка парсера. Как наименьшими телодвижениями нормально распарсить здоровенный XML на ASA? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.12.2009, 01:50 |
|
||
|
OpenXML в ASA
|
|||
|---|---|---|---|
|
#18+
iLLer, Мне кажется у вас неправильное понятие XML У вас <a> <b>test1</b> <c>a"test3</c> </a> т.е. должна выдаться строка с 2-мя столбцами нечто типа test1, a"test3 А для получения 2-х строк с одним столбцом должно быть нечто <a> <b>test1</b> <b>a"test3</b> </a> ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.12.2009, 09:53 |
|
||
|
OpenXML в ASA
|
|||
|---|---|---|---|
|
#18+
Sergey Orlov, Да не, со структорой все нормально. Есть некий сложный документ, с неопределенным на этапе проектирования количеством уровней вложенных тэгов. Обработать такой документ можно только посредством такого запроса, но есть сложность с получением данных из него. Проблема заключается в знаке двойной кавычки, который внутри тэга пишется через ", а не в виде ". Вот суть вопроса в том, что если осуществлять доступ к данным в тэге через функцию text(), то она возвращает только текст до такой кавычки. Если же использовать точку, для ссылания на текущий узел, то она возвращает из данного тэга все данные, но есть сторонний эффект, когда на более верхних уровнях она притаскивает данные из всех вложенных тэгов, и отделить мух от котлет становится сложно. Я так подозреваю, что это косяк со стороны АСА, ведь либо должна быть функция для доступа к сырым данным, либо функция text() должна возвращать все, что заключено внутри тэга, а не только то, что нравится. P.S.: И уж тем более не понятно почему нельзя использовать внутри xml » и « ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.12.2009, 12:33 |
|
||
|
OpenXML в ASA
|
|||
|---|---|---|---|
|
#18+
Вот что нарыл на sybase http://www.sybase.com/detail?id=1040663 Следуя этому документу, некоторые последовательности символов парсер воспринимает по своему и начинает пилить текстовую строку. Для получения всех данных рекомендуют использовать точку. Но как обойти тот факт, что при использовании точки тянуться данные от всех вложенных узлов? Да и вообще, что это за беспредел такой? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.12.2009, 16:49 |
|
||
|
|

start [/forum/topic.php?fid=55&msg=36381871&tid=2010792]: |
0ms |
get settings: |
12ms |
get forum list: |
15ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
152ms |
get topic data: |
10ms |
get forum data: |
3ms |
get page messages: |
43ms |
get tp. blocked users: |
2ms |
| others: | 249ms |
| total: | 494ms |

| 0 / 0 |

Извините, этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
... ля, ля, ля ...