Olá a todos os mestres... tenho que ler um arquivo xml e inserir numa tabela tenporaria... o meu banco é este:
Oracle8i Release 8.1.7.4.1 - Production PL/SQL Release 8.1.7.3.0 - Production CORE 8.1.7.2.1 Production Como é no 8i foi instalado um pacote para trabalhar com xml. crie esta rotininha para testar e ai começaram as dúvidas que estão me deixando louco. rotina ++++++ declare v_doc_text varchar2(5000); v_parser xmlparser.parser; v_doc xmldom.domdocument; v_n xmldom.domnode; nnm xmldom.DOMNamedNodeMap; n_l xmldom.DOMnodelist; attrname varchar2(100); attrval varchar2(100); len2 number; n xmldom.DOMNode; vcLocalNm varchar2(1000); sOutput varchar2(1000); z xmldom.DOMNode; begin v_doc_text :='<?xml version="1.0" encoding="ISO-8859-1" ?> <mensagemTISS xmlns="http://www.w3.org/2001/XMLSchema" xmlns:ans="http://www.ans.gov.br/padroes/tiss/schemas"> <cabecalho> <identificacaoTransacao> <tipoTransacao>ENVIO_LOTE_GUIAS</tipoTransacao> <sequencialTransacao>1137</sequencialTransacao> <dataRegistroTransacao>2007-06- 17</dataRegistroTransacao> <horaRegistroTransacao>13:19:01</horaRegistroTransacao> </identificacaoTransacao> <origem> <codigoPrestadorNaOperadora> <CNPJ>50984517000130</CNPJ> </codigoPrestadorNaOperadora> </origem><destino> <registroANS>005711</registroANS> </destino> <versaoPadrao>2.01.02</versaoPadrao> </cabecalho> </mensagemTISS>'; v_parser :=xmlparser.newParser; xmlparser.parseBuffer(v_parser,v_doc_text); v_doc :=xmlparser.getDocument(v_parser); n_l :=xmldom.getElementsByTagName(v_doc,'*'); len2 :=xmldom.getlength(n_l); for i in 0..len2-1 loop n:=xmldom.item(n_l,i); DBMS_OUTPUT.PUT_line('Nome tag : ' || xmldom.getNodeName(n) || '-' ); n:=xmldom.getfirstchild(n); if not xmldom.IsNull(n) and xmldom.getNodeValue(n) is not null then DBMS_OUTPUT.PUT_line('valor : ' || substr(xmldom.getNodeValue(n) ,1,150)|| ' ' ); end if; end loop; xmlparser.freeParser(v_parser); xmldom.freeDocument(v_doc); end; retorno +++++++ Nome tag : mensagemTISS- Nome tag : cabecalho- Nome tag : identificacaoTransacao- Nome tag : tipoTransacao- valor tag : ENVIO_LOTE_GUIAS Nome tag : sequencialTransacao- valor tag : 1137 Nome tag : dataRegistroTransacao- valor tag : 2007-06-17 Nome tag : horaRegistroTransacao- valor tag : 13:19:01 Nome tag : origem- Nome tag : codigoPrestadorNaOperadora- Nome tag : CNPJ- valor tag : 50984517000130 Nome tag : destino- Nome tag : registroANS- valor tag : 005711 Nome tag : versaoPadrao- valor tag : 2.01.02 este foi o retorno da minha rorina.....este arquivo xml é bem simples mas vou ter um arquivo bem complexo com "n" guias... primeira duvida ..... como fazer um controle para saber em qual das guias que estou ? vou ter tags que se repetem dentro de um mesmo arquivo e como vou diferenciar ? Agradeço a atenção jeferson