如何关闭XMLELEMENT中的emty标记?

时间:2013-08-02 14:46:03

标签: xml oracle plsql xml-generation

科尔斯,你好。 我无法关闭空标签“密码”。有我的代码:

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/>

所以......有人可以帮我关闭“密码”标签吗?我尝试了一些“替换”和“xmlattributes”的情况,但问题还没有解决。

1 个答案:

答案 0 :(得分:1)

我在密码中添加了一个值(a * 1 * c * 3),然后将该值替换为null。您可以添加不经常出现的值或字符集,以避免任何数据问题

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;