voila le code de la procedure pour parser un fichier xml et afficher ses éléments :
	
	| 12
 3
 4
 5
 6
 7
 8
 9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 
 | PROCEDURE    DOMSAMPLE (dir VARCHAR2, inpfile VARCHAR2, errfile VARCHAR2)
IS
   p     xmlparser.parser;
   doc   xmldom.domdocument;
 
-- prints elements in a document
   PROCEDURE printelements (doc xmldom.domdocument)
   IS
      nl    xmldom.domnodelist;
      len   NUMBER;
      n     xmldom.domnode;
   BEGIN
      -- get all elements
      nl := xmldom.getelementsbytagname (doc, '*');
      len := xmldom.getlength (nl);
 
      -- loop through elements
      FOR i IN 0 .. len - 1
      LOOP
         n := xmldom.item (nl, i);
         DBMS_OUTPUT.put (xmldom.getnodename (n) || ' ');
      END LOOP;
 
      DBMS_OUTPUT.put_line ('');
   END printelements;
BEGIN
-- new parser
   p := xmlparser.newparser;
   xmlparser.setvalidationmode (p, FALSE);
   xmlparser.setbasedir (p, dir);
   xmlparser.parse (p, 'C:\TEMP\TEST.xml');
   doc := xmlparser.getdocument (p);
   DBMS_OUTPUT.put ('The elements are: ');
   printelements (doc);
EXCEPTION
   WHEN xmldom.index_size_err
   THEN
      DBMS_OUTPUT.put (' !! ');
-- raise_application_error (-20120, 'Index Size error');
END domsample; | 
 sans tenir compte de fichier .log, l'execution de la procedure génére une exception 
	
	xmlparser.parse (p, 'C:\TEMP\TEST.xml');
 et ne se termine pas. j'ai donné le chemin en dur. mais se ne marche plus.



 
 
Merci pour votre aide.   
						
					
Partager