我寫的代碼如下: (pid number,file_path varchar2)
is
doc xmlDom.DOMDocument := xmldom.newDOMDocument; -- 創建文檔對象
main_node xmlDom.DOMNode := xmldom.makeNode(doc); -- 獲得文檔節點
root_elmt xmlDom.DOMElement:= xmldom.createElement(doc, 'PEOPLE'); -- 創建根元素
person_elmt xmlDom.DOMElement; --定義PERSON元素
name_elmt xmlDom.DOMElement; --定義NAME元素
qyjs_elmt xmlDom.DOMElement; --定義QYJS元素
filename_elmt xmlDom.DOMElement; --定義filename元素
root_node xmlDom.DOMNode; --定義PEOPLE節點
person_node xmlDom.DOMNode; --定義PERSON節點
name_node xmlDom.DOMNode; --定義NAME節點
qyjs_node xmlDom.DOMNode; --定義qyjs節點
filename_node xmlDom.DOMNode; --定義filename節點
temp_node xmlDom.DOMNode;
v_name varchar2(64);
v_qyjs varchar2(500);
v_filename varchar2(200);
begin
SELECT NAME INTO v_name FROM FILIALE WHERE ID=pid;
SELECT QYJS INTO v_qyjs FROM FILIALE WHERE ID=pid;
SELECT OFILENAME INTO v_filename FROM FILIALE WHERE ID=pid;
--生成xml文檔
-- 向文檔節點加入根節點:<PEOPLE></PEOPLE>
root_node := xmldom.appendChild(main_node, xmldom.makeNode(root_elmt));
person_elmt := xmldom.createElement(doc, 'PERSON'); --創建PERSON元素
-- 向PEOPLE節點加入PERSON節點<PERSON></PERSON>
person_node := xmldom.appendChild(root_node, xmldom.makeNode(person_elmt));
--向PERSON節點加入屬性PERSONID
xmlDom.SETATTRIBUTE( person_elmt, 'PERSONID', pid );
name_elmt := xmldom.createElement(doc, 'NAME'); --創建NAME元素
--向PERSON節點加入子節點NAME
name_node := xmldom.appendChild(person_node,xmlDom.makeNode(name_elmt));
--向NAME節點加入文本
temp_node := xmldom.appendChild(name_node , xmlDom.makeNode(xmldom.createTextNode(doc,v_name)));
qyjs_elmt := xmldom.createElement(doc, 'QYJS'); --創建qyjs元素
--向PERSON節點加入子節點qyjs
qyjs_node := xmldom.appendChild(person_node,xmlDom.makeNode(qyjs_elmt));
--向qyjs節點加入文本
temp_node := xmldom.appendChild(qyjs_node,xmlDom.makeNode(xmldom.createTextNode(doc,v_qyjs)));
filename_elmt := xmldom.createElement(doc, 'FILENAME'); --創建filename元素
--向filename節點加入子節點filename
filename_node := xmldom.appendChild(person_node,xmlDom.makeNode(filename_elmt));
--向filename節點加入文本
temp_node := xmldom.appendChild(filename_node, xmlDom.makeNode(xmldom.createTextNode(doc,v_filename)));
--寫入硬盤
xmldom.setVersion(doc, '1.0 ');
xmlDom.writeToFile(doc,file_path,'GBK');
EXCEPTION
WHEN OTHERS THEN
ROLLBACK;
end CJXML;
為何報invalid char in text
回復 更多評論