2013-08-02 3 views
0

Colls, привет. Я не могу закрыть пустой тег «password». Существует мой код:Как закрыть тег emty в XMLELEMENT?

select 
XMLROOT(
     XMLELEMENT("prod", 
       XMLELEMENT("prod2", 
          XMLELEMENT("quest", 
             XMLELEMENT("request", 
                XMLELEMENT("OutputFormat", 'XML'), 
                XMLELEMENT("lang", 'ru'), 
                 XMLELEMENT("RequestReq", 
                   XMLELEMENT("User", 'Мyya'), 
                   XMLELEMENT("Password", null) 
                   ) 


               ) 
            ) 
         ) 
       ), 

     version '1.0" encoding="windows-1251') as XML from dual; 

Если запустить этот код тег "пароль" будет открыт:

<Password/> 

Но мне нужно это закрылось как:

<Password></Password/> 

Итак ... может кто-нибудь помочь мне закрыть тег «пароль»? Я пробовал некоторые случаи с «replace» и «xmlattributes», но проблема еще не решена.

ответ

1

Я добавил значение (a * 1 * c * 3) к паролю и затем заменил значение нулевым. Вы можете добавить значение или набор символов, которые не встречаются регулярно, чтобы избежать каких-либо проблем с данными.

select 
REPLACE((XMLROOT(
     XMLELEMENT("prod", 
       XMLELEMENT("prod2", 
          XMLELEMENT("quest", 
             XMLELEMENT("request", 
                XMLELEMENT("OutputFormat", 'XML'), 
                XMLELEMENT("lang", 'ru'), 
                 XMLELEMENT("RequestReq", 
                   XMLELEMENT("User", 'Мyya1'), 
                   XMLELEMENT("Password",'a*1*c*3') 
                   ) 


               ) 
            ) 
         ) 
       ), 

     version '1.0" encoding="windows-1251')),'a*1*c*3',null) as XML from dual;