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

Oracle Discussion :

XML sur le portal


Sujet :

Oracle

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Juin 2004
    Messages
    35
    Détails du profil
    Informations forums :
    Inscription : Juin 2004
    Messages : 35
    Par défaut XML sur le portal
    J'essaye de créer une page XML sur le portal Oracle 9i à partir d'une requête SQL.
    J'ai donc créer un package permettant de générer un flux XML que je stocke dans un CLOB.
    Sur le portal, je peux créer un composant XML avec la possibilité de mettre du code XML, et XSL.

    Le problème est que je n'arrive pas à gérer le CLOB.

    Voici le code que j'ai placé dans la partie réservée au XML :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    <ORACLE>
    DECLARE
    test CLOB;
    BEGIN
    test:= ITT.PCK_XMLENGINE.SF_EXTRACTXML('SELECT SYSDATE FROM SYS.DUAL');
    htp.p(test);
    END;
    </ORACLE>
    Voici le code que j'ai placé dans la partie réservée au XSL :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    <?xml version="1.0"?>
    <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
    <xsl:template match="/">
      <html>
      <body>
          <xsl:for-each select="TRFLIST/TRF">
          <xsl:value-of select="SYSDATE"/>
          </xsl:for-each>
      </body>
      </html>
    </xsl:template>
    </xsl:stylesheet>
    Au passage, voici ce que me renvoie ITT.PCK_XMLENGINE.SF_EXTRACTXML('SELECT SYSDATE FROM SYS.DUAL') :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    <?xml version="1.0"?>
    <TRFList>
     <TRF>
      <SYSDATE>19-AUG-04</SYSDATE>
     </TRF>
    </TRFList>
    (obtenu avec Toad)

    Je ne vois pas où est mon erreur. Quelqu'un pourrait t'il m'aider ?

    Merci.

  2. #2
    Membre émérite

    Profil pro
    Inscrit en
    Mai 2003
    Messages
    412
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Mai 2003
    Messages : 412
    Par défaut
    il faut utiliser des packages spécifique comme xsl_processor et xmlparser pour pouvoir traiter le xml avec du xsl

  3. #3
    Membre averti
    Inscrit en
    Juin 2004
    Messages
    35
    Détails du profil
    Informations forums :
    Inscription : Juin 2004
    Messages : 35
    Par défaut
    aaaaaaaaaah, Helyos, je suis vraiment content que tu sois revenu de vacances
    Tu peux pas savoir comme tu m'as manqué

    Tu me conseille donc de passer par une dynamic page en utilisant ces packages ?

  4. #4
    Membre émérite

    Profil pro
    Inscrit en
    Mai 2003
    Messages
    412
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Mai 2003
    Messages : 412
    Par défaut
    nan meme pas. Tu peux faire une procédure qui recupere le contenu d'un CLOB contenant du xml le parser prendre le contenu d'un autre CLOB qui contiendra ton XSL mixer les deux dans un 3 eme CLOB qui lui contiendra le code HTML resultant (c'est ce que j'ai fait pour une de mes nouvelles appli)

  5. #5
    Membre averti
    Inscrit en
    Juin 2004
    Messages
    35
    Détails du profil
    Informations forums :
    Inscription : Juin 2004
    Messages : 35
    Par défaut
    euuuh tu peux m'envoyer ton code stp si ça te dérange pas ?

    Merci

  6. #6
    Membre émérite

    Profil pro
    Inscrit en
    Mai 2003
    Messages
    412
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Mai 2003
    Messages : 412
    Par défaut
    Voila le morceaux important
    p_xsl2 contient le code XSL
    et je recupere le code XML d'un objet de type file de portal
    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
     
    ...
     l_par  := sys.xmlparser.newparser;
        sys.xmlparser.parseclob(l_par, p_xsl2);
        l_xsl := sys.xslprocessor.newstylesheet(xmlparser.getdocument(l_par), NULL);
        sys.xmlparser.parse(l_par, 'http://www.labo-oracle.org/pls/portal/docs/1/' ||
                             p_item);
        l_xml := sys.xmlparser.getdocument(l_par);
        dbms_lob.createtemporary(l_clob, TRUE, dbms_lob.session);
        l_pro := sys.xslprocessor.newprocessor;
        sys.xslprocessor.processxsl(l_pro, l_xsl, l_xml, l_clob);
        sys.xmlparser.freeparser(l_par);
        sys.xslprocessor.freeprocessor(l_pro);
        sys.xslprocessor.freestylesheet(l_xsl);
        dbms_lob.freetemporary(p_xsl2);
        l_clob := replace_score(l_clob);
        write_clob(l_clob);
        dbms_lob.freetemporary(l_clob);
    ...

  7. #7
    Membre averti
    Inscrit en
    Juin 2004
    Messages
    35
    Détails du profil
    Informations forums :
    Inscription : Juin 2004
    Messages : 35
    Par défaut
    Merci, mais dans quel type de portlet ajoute tu ce code?

  8. #8
    Membre émérite

    Profil pro
    Inscrit en
    Mai 2003
    Messages
    412
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Mai 2003
    Messages : 412
    Par défaut
    je met pas le code dans un portlet mais dans un fichier xml que je stocke dans un item file

  9. #9
    Membre averti
    Inscrit en
    Juin 2004
    Messages
    35
    Détails du profil
    Informations forums :
    Inscription : Juin 2004
    Messages : 35
    Par défaut
    Merci. Je vais tout de même passer par une dynamic page car je dois rajouter à mon code XML transformé un formulaire.

    J'ai testé ton code tant bien que mal. Mais je n'arrive pas à m'en sortir. En fait, vu que j'ai mon code XML stocké dans un CLOB, j'ai essayé de modifier ton code. Voici ce que j'ai mis, et voici l'erreur sortante :

    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
    33
    34
    35
    36
    37
    38
    39
    40
    41
     
    <HTML>
     
    <BODY>
     
    <ORACLE>
     
    DECLARE
     
      TYPE Parser IS RECORD ( ID NUMBER(12) NOT NULL := -1 );
      TYPE Processor IS RECORD ( ID NUMBER NOT NULL := -1);
      TYPE Stylesheet IS RECORD ( ID NUMBER NOT NULL := -1);
      l_par Parser;
      p_xsl2 CLOB;
      l_xml CLOB;
      l_xsl Stylesheet;
      l_clob CLOB;
      l_pro Processor;
     
    BEGIN
     
     
      l_xml:= 'mon code xml';
      p_xsl2:='mon code xsl';
     
      l_par  := sys.xmlparser.newparser; 
      sys.xmlparser.parseclob(l_par, p_xsl2); 
      l_xsl := sys.xslprocessor.newstylesheet(xmlparser.getdocument(l_par), NULL);
     
      dbms_lob.createtemporary(l_clob, TRUE, dbms_lob.session); 
      l_pro := sys.xslprocessor.newprocessor; 
      sys.xslprocessor.processxsl(l_pro, l_xsl, l_xml, l_clob);
     
      htp.p(l_clob);
     
    END;
    </ORACLE>
     
    </BODY>
     
    </HTML>
    Voici l'erreur :
    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
     
    ORA-06550: line 1, column 1000:
    PLS-00382: expression is of wrong type
    ORA-06550: line 1, column 976:
    PL/SQL: Statement ignored
    ORA-06550: line 1, column 1015:
    PLS-00306: wrong number or types of arguments in call to 'PARSECLOB'
    ORA-06550: line 1, column 1015:
    PL/SQL: Statement ignored
    ORA-06550: line 1, column 1099:
    PLS-00306: wrong number or types of arguments in call to 'GETDOCUMENT'
    ORA-06550: line 1, column 1059:
    PL/SQL: Statement ignored
    ORA-06550: line 1, column 1234:
    PLS-00382: expression is of wr (WWV-11230)

    Je ne comprend vraiment pas pourquoi j'obtient cette erreur.
    As tu une idée?

    Merci beaucoup.

  10. #10
    Membre émérite

    Profil pro
    Inscrit en
    Mai 2003
    Messages
    412
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Mai 2003
    Messages : 412
    Par défaut
    Je vais voir ce que je vais te trouver

  11. #11
    Membre averti
    Inscrit en
    Juin 2004
    Messages
    35
    Détails du profil
    Informations forums :
    Inscription : Juin 2004
    Messages : 35
    Par défaut
    Mille fois merci.
    C'est vraiment agréable de savoir que l'on a quelqu'un qui peut nous aider quand on butte complètement.
    Tu es très "Helpfull", et c'est vraiment sympa de ta part

  12. #12
    Membre émérite

    Profil pro
    Inscrit en
    Mai 2003
    Messages
    412
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Mai 2003
    Messages : 412
    Par défaut
    Va voir sur
    http://asktom.oracle.com/pls/ask/f?p...1827993798549,

    et lance une recherche sur transform_xml_with_xsl et tu vas voir comment il fait . Ca solution utilise 2 clob 1 pour le xsl 1 pour le xml

    et merci pour tes compliments

  13. #13
    Membre averti
    Inscrit en
    Juin 2004
    Messages
    35
    Détails du profil
    Informations forums :
    Inscription : Juin 2004
    Messages : 35
    Par défaut
    Encore une fois merci.
    Je regarde ça tout de suite :-)

  14. #14
    Membre averti
    Inscrit en
    Juin 2004
    Messages
    35
    Détails du profil
    Informations forums :
    Inscription : Juin 2004
    Messages : 35
    Par défaut
    Ca maaaaaaaaaaaaaaaaaaarche

    MERCI MERCI MERCI

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 3
    Dernier message: 05/12/2005, 14h17
  2. Utiliser un fichier XML sur un serveur FTP
    Par ired dans le forum Bases de données
    Réponses: 1
    Dernier message: 06/04/2005, 13h43
  3. middleware XML sur pocket PC
    Par pimousse_on_ice dans le forum XML/XSL et SOAP
    Réponses: 6
    Dernier message: 30/11/2004, 21h16
  4. Manipulation de XML sur base de données
    Par psyche dans le forum Décisions SGBD
    Réponses: 1
    Dernier message: 02/11/2004, 14h07
  5. Prise en charge multilingue sur le portal
    Par nic211 dans le forum Oracle
    Réponses: 4
    Dernier message: 07/07/2004, 14h43

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