使用XMLDOM在XML标头上缺少编码信息

时间:2016-02-03 10:53:17

标签: sql xml oracle plsql xmldom

我想用xmldom打印xml标头。问题是,它只打印xml版本但缺少编码信息。

我得到了什么:

<?xml version="1.0"?>

我想要的是什么:

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

即时使用ORACLE 11g

这是我到目前为止所得到的:

doc     := xmldom.newdomdocument;
xmldom.setversion(doc,'1.0');        
xmldom.setCharset(doc,'UTF-8');
mainNode := xmldom.makeNode(doc);

rootElmt := xmldom.createElement(doc,'Dokument');
rootNode := xmldom.appendChild (mainNode,xmldom.makeNode(rootElmt));
SetCurNode (rootNode);

dbms_lob.createTemporary(vClob,true); 
dbms_xmldom.writeToClob (doc,vClob);
xmldom.freedocument  (doc);

提前致谢,

伊万

1 个答案:

答案 0 :(得分:1)

不完全确定为什么charset不包含在输出中,但它似乎是一个常见问题。另一种选择(此处显示为https://asktom.oracle.com/pls/apex/f?p=100:11:0::::P11_QUESTION_ID:2791321000346652231)是执行以下操作:

xmldom.setVersion(doc,'1.0" encoding="UTF-8');

编辑:显然,除非使用writeToFile过程,否则忽略您指定的字符集,这可以解释为什么在使用writeToClob时它不包含在输出中