2015-03-23 3 views
0

Мне нужно добавить данные пространства имен в документ xml.Добавить пространство имен в XML-документе в оракуле

уже у меня есть пространство имен

<?xml version="1.0" encoding="UTF-8" standalone="yes"?> 

и XML-данных в

l_xmltype :=dbms_xmldom.getXmlType(l_domdoc); 

dbms_xmldom.freeDocument (l_domdoc); dbms_output.put_line (l_xmltype.getClobVal);

Этот l_xmltype является чисто XML без пространства имен. как конкатенировать пространство имен с помощью этого l_xmltype. пожалуйста, помогите

+0

'' не является пространством имен, а необязательным [preamable] (http://stackoverflow.com/q/13743250/272735). – user272735

+0

Hi Preamable, - это пространство имен. нужно конкретизировать с l_xmltype –

ответ

1

Если бы это было просто

<?xml version="1.0" stadalone="yes"?> 

, то вы бы уже использовали функцию XMLROOT.

XMLROOT однако не поддерживает кодировку. Вы можете «взломать» свой путь, используя XMLROOT со значением параметра «версия» как '1.0" encoding="utf-8' вместо '1.0' как ответ here. Однако это не рекомендуется.

Если у вас есть доступ к поддержке оракула, прочитайте документ Doc ID 1449682.1. Oracle предлагает вам сделать это вместо этого -

SELECT 
    XMLTYPE(
     '<?xml version="1.0" encoding="UTF-8" standalone="yes"?>' 
     || l_xmlvariable_or_column 
     ) 
FROM MY_TABLE; 

Имейте в виду, что encoding="xxxx" в вышеупомянутом заявлении автоматически изменяется на CharacterSet запрошенной клиентом. Чтобы установить его в utf-8, установите для параметра NLS_LANG значение AL32UTF8.

+0

Спасибо Руудван за вашу помощь .. это очень помогает! :) –

Смежные вопросы