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