Précédent   Forum des professionnels en informatique > Bases de données > Oracle > PL/SQL
PL/SQL Forum d'entraide sur le PL/SQL
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 26/12/2007, 16h52   #1
Invité de passage
 
Inscription : avril 2005
Messages : 20
Détails du profil
Informations forums :
Inscription : avril 2005
Messages : 20
Points : 3
Points : 3
Par défaut parser xml pl/sql

Bonjour,

J'essaye de parser un fichier xml afin d'intégrer ses données dans ma base de données.

Le fichier xml est du type:
Code :
1
2
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
 
<?xml version="1.0" encoding="utf-8"?>
<CompteRenduReception xmlns:L5="http://www.adresse.com" xmlns:msxsl="urn:schemas-microsoft-com:xslt">
<Appro>
<CodeActivite>WAN</CodeActivite>
<Reference>CF071199</Reference>
<DateDeReceptionEffective>2007-12-17T21:15:06</DateDeReceptionEffective>
<Ligne>
<ReferenceLigne>69781</ReferenceLigne>
<StatutLigne>10</StatutLigne>
<Motif/>
<CodeArticle>A00AA01</CodeArticle>
<QuantiteReceptionnee>3</QuantiteReceptionnee>
</Ligne>
<Ligne>
<ReferenceLigne>69787</ReferenceLigne>
<StatutLigne>10</StatutLigne>
<Motif/>
<CodeArticle>A00ADFM</CodeArticle>
<QuantiteReceptionnee>2</QuantiteReceptionnee>
</Ligne>
</Appro>
<Appro>
<Ligne>
<ReferenceLigne>69811</ReferenceLigne>
<StatutLigne>10</StatutLigne>
<Motif/>
<CodeArticle>A00CIZO</CodeArticle>
<QuantiteReceptionnee>2</QuantiteReceptionnee>
</Ligne>
</Appro>
</CompteRenduReception>
Et pour parser mon fichier en pl/sql:
Code :
1
2
 
thexmldoc := xml.parse(BFileName('DIR_IN','nom_fichier.ext'));
Lorsque j'exécute ma procédure, j'ai un message d'erreur:
Code :
1
2
3
4
5
6
7
8
9
 
ORA-31011: XML parsing failed
ORA-19202: Error occurred IN XML processing
LPX-00210: expected '<' instead of '?'
Error at line 1
ORA-06512: at "XDB.DBMS_XMLPARSER", line 190
ORA-06512: at "SOC1.XML", line 59
ORA-06512: at "SOC1.P_MaProcedure", line 13
ORA-06512: at line 1
La ligne 13 dont ils parlent c'est celle que j'ai indiquée plus haut.
J'ai testé mon fichier XML il est bien formé, pas d'erreur de balises nul part.
Franchement je n'ai aucune idée d'où peut provenir cette erreur.

Merci d'avance pour votre aide
eidole62 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/12/2007, 10h59   #2
Invité de passage
 
Inscription : avril 2005
Messages : 20
Détails du profil
Informations forums :
Inscription : avril 2005
Messages : 20
Points : 3
Points : 3
Bon j'ai changé de méthode pour parser mon fichier et maintenant je n'ai plus de message d'erreur. Par contre je n'arrive pas à récupérer la valeur de mes noeuds:
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
 
CREATE OR REPLACE PROCEDURE p_crapro (
   p_codsoc    IN   NUMBER,
   p_fichier   IN   VARCHAR2
)
IS
   wa_repertoire   VARCHAR2 (100);
   wa_nomfic       VARCHAR2 (50);
   wa_listenode    xmldom.domnodelist;
   wa_ca           VARCHAR2 (3);
   thexmldoc       xmldom.domdocument;
   p               xmlparser.parser;
   wa_test         VARCHAR2 (50);
BEGIN
   p := xmlparser.newparser;
   xmlparser.parse (p, 'DIR_IN/'||p_fichier);
   thexmldoc := xmlparser.getdocument (p);
   wa_listenode :=
                  xpath.selectnodes (thexmldoc, '/CompteRenduReception/Appro');
   FOR i IN 1 .. xmldom.getlength (wa_listenode)
   LOOP
      wa_ca :=
           xpath.valueof (xmldom.item (wa_listenode, i-1), '/CodeActivite');
   END LOOP;
END;
Rien à faire ma variable wa_ca reste vide. Je me doute qu'il doit y avoir une erreur de code quelque part mais je ne vois pas où....
eidole62 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 16h47.


 
 
 
 
Partenaires

Hébergement Web