IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

PL/SQL Oracle Discussion :

parser xml pl/sql


Sujet :

PL/SQL Oracle

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Avril 2005
    Messages
    20
    Détails du profil
    Informations forums :
    Inscription : Avril 2005
    Messages : 20
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    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

  2. #2
    Membre averti
    Inscrit en
    Avril 2005
    Messages
    20
    Détails du profil
    Informations forums :
    Inscription : Avril 2005
    Messages : 20
    Par défaut
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    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ù....

Discussions similaires

  1. parser xml avec pl/sql
    Par opensource dans le forum PL/SQL
    Réponses: 0
    Dernier message: 21/01/2010, 20h09
  2. PL/SQL Parser XML
    Par eidole62 dans le forum XQUERY/SGBD
    Réponses: 2
    Dernier message: 16/09/2009, 15h23
  3. [SAX] NoSuchElementException sur parser XML
    Par iceman dans le forum Format d'échange (XML, JSON...)
    Réponses: 5
    Dernier message: 17/05/2004, 14h42
  4. parser xml
    Par billout dans le forum C++Builder
    Réponses: 4
    Dernier message: 20/11/2003, 11h08
  5. Parser XML
    Par miloux32 dans le forum XML/XSL et SOAP
    Réponses: 4
    Dernier message: 18/07/2003, 03h17

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo