2016-12-22 3 views
1

PL/SQLパッケージdbms_xmldomを使用して、XML文書の最初に<?xml ....?>行を取得しようとしています。ここでは、コードがこれまでdbms_xmldom - <?xmlタグを取得する方法

declare 
    l_dom dbms_xmldom.DOMDocument; 
    l_clob clob; 
    l_node dbms_xmldom.DOMNode; 

begin 
    l_dom := dbms_xmldom.newDomDocument; 
    l_node := dbms_xmldom.makeNode(l_dom); 

    l_node := dbms_xmldom.appendChild(l_node, 
       dbms_xmldom.makeNode(
       dbms_xmldom.createElement(l_dom, 'root') 
      ) 
      ); 

    dbms_lob.createtemporary(l_clob, true); 

    dbms_xmldom.writeToClob(l_dom, l_clob); 
    dbms_output.put_line(l_clob); 
end; 

出力は次のようになります。

<root/> 

が期待:

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

これを行う方法上の任意のポインタが偉大なるだろう。念のため

答えて

2

- ここでは、プロローグは通常、XMLシリアル化によって自動的に追加された文書

+0

それは私がちょうどスニペットを入れている –

0

を作成した後に

dbms_xmldom.setVersion(l_dom, '1.0" encoding="UTF-8'); 

を追加するために必要なものであるので、あなたはそれを追加する必要はありませんあなた自身がXMLRootであなたができることを望むのであれば、それを行うことができます。

XMLを生成する方法は非常に非効率的です。 XMLElement、XMLForest、XMLAggなどがあります。

ここでは、1行のコードでプロローグを使用する単純なルートと子の例を示します。

select XMLRoot(XMLElement("root", XMLElement("child", 12)), version '1.0') from dual 

<?xml version="1.0"?> 
<root> 
    <child>12</child> 
</root> 
+1

これを見つけるために掘るのビットを取った - コードの残りの部分は、XML文書 –

+0

の残りの部分を生成するために、PL/SQLを使用しているようご協力いただき、ありがとうございます。 –

関連する問題