首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >dbms_xmlgen.SETNULLHANDLING正在将诸如&这样的特殊字符转换为&

问dbms_xmlgen.SETNULLHANDLING正在将诸如&这样的特殊字符转换为&
EN

Stack Overflow用户
提问于 2011-04-19 07:18:27
回答 1查看 2.1K关注 0票数 1

我正在使用dbms_xmlgen生成一个xml文档。为了处理空值,我使用dbms_xmlgen.SETNULLHANDLING,但这是将特殊字符(如& )转换为&。如何避免这种转换,而不使用替换,因为它将扫描整个数据。帮帮忙吧。

EN

回答 1

Stack Overflow用户

发布于 2011-04-19 08:16:10

这种行为并不是由于SETNULLHANDLING函数造成的:这是标准的XML。

考虑:

代码语言:javascript
复制
SQL> SET DEFINE OFF
SQL> VARIABLE xml VARCHAR2(4000);
SQL> DECLARE
  2     l_ctx dbms_xmlgen.ctxHandle;
  3  BEGIN
  4     l_ctx := dbms_xmlgen.newcontext('SELECT ''&'' x FROM DUAL');
  5     :xml := dbms_xmlgen.getXML(l_ctx);
  6  END;
  7  /

PL/SQL procedure successfully completed

xml
---------
<?xml version="1.0"?>
<ROWSET>
 <ROW>
  <X>&amp;</X>
 </ROW>
</ROWSET>

生成的XML格式良好。如果将&amp;替换为&,则XML的格式不会很好。

关于您的评论:只需在输入中使用<和>:

代码语言:javascript
复制
SQL> SET DEFINE OFF
SQL> VARIABLE xml VARCHAR2(4000);
SQL> BEGIN
  2     :xml := dbms_xmlgen.getXML(
  3                 dbms_xmlgen.newcontext('SELECT ''This is <B>BOLD</B>'' x
  4                                           FROM DUAL'));
  5  END;
  6  /

PL/SQL procedure successfully completed
xml
---------
<?xml version="1.0"?>
<ROWSET>
 <ROW>
  <X>This is &lt;B&gt;BOLD&lt;/B&gt;</X>
 </ROW>
</ROWSET>
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5712886

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档