我写的代码如下: (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
回复 更多评论