XQuery: возвращаемое значение элемента, а не самого элемента

17

У меня есть документ XML, содержащий следующие

...
<foo>abc</foo>
...

Если я оцениваю

return $xml//foo

Я возвращаюсь

<foo>abc</foo>

Есть ли способ получить только abc вместо?

    
задан kpozin 20.07.2009 в 20:51
источник

5 ответов

22

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

return $xml/text()

Будьте осторожны, если у вас будет структура вложенных тегов внутри $ xml, хотя это будет идти только на один уровень для текстовых узлов. Если вы хотите, чтобы все текстовые узлы вместе, удалив другую структуру XML, это будет делать сколь угодно глубоким:

return $xml//text()
    
ответ дан Harold L 20.07.2009 в 20:54
источник
13

Используйте строковую функцию для получения строкового содержимого узла.

return string($xml)
    
ответ дан Oliver Hallam 21.07.2009 в 15:39
источник
7

Чтобы вернуть только данные внутри элемента, который вы можете использовать:

return data($xml)
    
ответ дан SeeJay 19.09.2009 в 11:14
источник
0

Вставить в xs: string % Co_de%     

ответ дан savemaxim 20.05.2013 в 13:29
источник
0

OSB (служебная шина oracle) пользователи могут использовать следующую функцию.

fn-bea:serialize($xml)     

ответ дан Aniruddha Jagtap 15.12.2014 в 11:22
источник