Résultats de 1 à 3 sur 3

Sujet : xml parser

  1. #1
    Membre MP
    Inscrit
    août 2013
    Messages
    1

    xml parser

    Bonjour
    Je travail avec une version de cobol pour Z/OS V3R1 et j\'essaie de traiter un flux XML.
    Cette version de cobol permet l\'utilisation de \"XML PARSE\", mais je rencontre une erreur 135 lorsque je traite l\'évenement START-OF-CDATA-SECTION: c\'est à dire la balise <![CDATA[...
    Quel interet de pouvoir parser du XML si ce type de balise ne peut être traitée...
    HELP ! HELP !!!

    merci
    8O

  2. #2
    Visiteur MP
    Visiteur MP
    je ne connais ni ce cobol, ni l\'instruction (?),
    ni la balise (<! commentaires ) citées,
    ce que je peux dire c\'est que c\'est
    toujours le programmeur qui fait une erreur.
    mauvaise utilisation ? sauf si bug de ce cobol,
    ce qui me paraît hautement improbable.
    @+

  3. #3
    Membre MP
    Inscrit
    août 2013
    Messages
    7
    J\'ai trouve cette exemple sur le net et il fonction


    *=======================*
    *=======================*
    IDENTIFICATION DIVISION.
    *=======================*
    *=======================*

    *==========*
    PROGRAM-ID. TBETMOD2.
    *==========*

    *====================*
    ENVIRONMENT DIVISION.
    *====================*

    *=====================*
    CONFIGURATION SECTION.
    *=====================*

    *===============*
    SOURCE-COMPUTER. IBM-370.
    *SOURCE-COMPUTER. IBM-370 WITH DEBUGGING MODE.
    *===============*

    *=============*
    *SPECIAL-NAMES. DECIMAL-POINT IS COMMA.
    SPECIAL-NAMES.
    *=============*

    *=============*
    DATA DIVISION.
    *=============*

    *=======================*
    WORKING-STORAGE SECTION.
    *=======================*


    * document xml / attention au majuscule/minuscule
    1 xml-document.
    * 1140 = ebcdic
    * 819 = ascii
    * 2 pic x(39) value \'<?xml version=\"1.0\" encoding=\"ibm-1140\"\'.
    *
    * le parser n aime pas le encoding=\"ibm-1140\"
    * il prefere faire le test lui meme
    * voir \"XML CCSID exception flow control\" dans la doc/web
    *
    2 pic x(39) value \'<?xml version=\"1.0\"\'.
    2 pic x(19) value \' standalone=\"yes\"?>\'.
    2 pic x(39) value \'<!--This document is just an example-->\'.
    2 pic x(10) value \'<sandwich>\'.
    2 pic x(35) value \' <bread type=\"baker&apos;s best\"/>\'.
    2 pic x(41) value \' <?spread please use real mayonnaise ?>\'.
    2 pic x(31) value \' <meat>Ham &amp; turkey</meat>\'.
    2 pic x(40) value \' <filling>Cheese, lettuce, tomato, etc.\'.
    2 pic x(10) value \'</filling>\'.
    2 pic x(35) value \' <![CDATA[We should add a <relish>\'.
    2 pic x(22) value \' element in future!]]>\'.
    2 pic x(31) value \' <listprice>$4.99 </listprice>\'.
    2 pic x(27) value \' <discount>0.10</discount>\'.
    2 pic x(11) value \'</sandwich>\'.

    1 xml-document-length computational pic 999.

    1 CURRENT-ELEMENT PIC X(30).
    1 XFR-ED PIC X(9) JUSTIFIED.
    1 XFR-ED-1 REDEFINES XFR-ED PIC 999999.99.
    1 LIST-PRICE COMPUTATIONAL PIC 9V99 VALUE 0.
    1 DISCOUNT COMPUTATIONAL PIC 9V99 VALUE 0.
    1 DISPLAY-PRICE PIC $$9.99.

    *
    1 Employee1 global.
    2 Name pic X(5) Value \'Tom\'.
    2 Idn pic 9(9) comp Value 123456789.
    2 Addr.
    3 Street pic X(20) Value \'555 Bailey Ave\'.
    3 City pic X(20) Value \'San Jose\'.
    3 State pic X(20) Value \'California\'.
    2 More.
    3 Age pic +99.99 Value \'45.9\'.
    3 Firm pic BBXXX9B Value \'IBM4\'.
    3 Salary COMP-2 Value +.00012327E+06.

    1 XML-Employee1 pic X(500).

    *=====================*
    LOCAL-STORAGE SECTION.
    *=====================*


    *===============*
    LINKAGE SECTION.
    *===============*


    *==================*
    PROCEDURE DIVISION.
    *==================*

    * permet une insersion \"inline\" des sections dans le code cobol
    MAINLINE SECTION.

    * appel du parser
    XML PARSE XML-DOCUMENT PROCESSING PROCEDURE XML-HANDLER
    ON EXCEPTION
    DISPLAY \'XML DOCUMENT ERROR \' XML-CODE
    NOT ON EXCEPTION
    DISPLAY \'XML DOCUMENT SUCCESSFULLY PARSED\'
    END-XML

    * resultat
    DISPLAY \' \'
    DISPLAY \'-----+++++***** USING INFORMATION FROM XML \'
    \'*****+++++-----\'
    DISPLAY \' \'
    MOVE LIST-PRICE TO DISPLAY-PRICE
    DISPLAY \' SANDWICH LIST PRICE: \' DISPLAY-PRICE
    COMPUTE DISPLAY-PRICE = LIST-PRICE * (1 - DISCOUNT)
    DISPLAY \' PROMOTIONAL PRICE: \' DISPLAY-PRICE
    DISPLAY \' GET ONE TODAY!\'

    * generation d un xml depuis une copie cobol
    * XML GENERATE XML-Employee1 FROM Employee1
    * ON EXCEPTION
    * DISPLAY \'XML GENERATE ERROR \' XML-CODE
    * NOT ON EXCEPTION
    * DISPLAY \'XML Employee SUCCESSFULLY GENERATE\'
    * END-XML

    * fin du programme
    GOBACK.

    * resultat du decodage
    *
    * START OF DOCUMENT: LENGTH=390 CHARACTERS.
    * VERSION: <1.0>
    * STANDALONE: <yes>
    * COMMENT: <This document is just an example>
    * START ELEMENT TAG: <sandwich>
    * CONTENT CHARACTERS: < >
    * START ELEMENT TAG: <bread>
    * ATTRIBUTE NAME: <type>
    * ATTRIBUTE VALUE CHARACTERS: <baker>
    * ATTRIBUTE VALUE CHARACTER: <\'>
    * ATTRIBUTE VALUE CHARACTERS: <s best>
    * END ELEMENT TAG: <bread>
    * CONTENT CHARACTERS: < >
    * PI TARGET: <spread>
    * PI DATA: <please use real mayonnaise >
    * CONTENT CHARACTERS: < >
    * START ELEMENT TAG: <meat>
    * CONTENT CHARACTERS: <Ham >
    * CONTENT CHARACTER: <&>
    * CONTENT CHARACTERS: < turkey>
    * END ELEMENT TAG: <meat>
    * CONTENT CHARACTERS: < >
    * START ELEMENT TAG: <filling>
    * CONTENT CHARACTERS: <Cheese, lettuce, tomato, etc.>
    * END ELEMENT TAG: <filling>
    * CONTENT CHARACTERS: < >
    * START OF CDATA: <<![CDATA[>
    * CONTENT CHARACTERS: <We should add a <relish> element in fut....
    * END OF CDATA: <]]>>
    * CONTENT CHARACTERS: < >
    * START ELEMENT TAG: <listprice>
    * CONTENT CHARACTERS: <$4.99 >
    * END ELEMENT TAG: <listprice>
    * CONTENT CHARACTERS: < >
    * START ELEMENT TAG: <discount>
    * CONTENT CHARACTERS: <0.10>
    * END ELEMENT TAG: <discount>
    * END ELEMENT TAG: <sandwich>
    * END OF DOCUMENT.
    * XML DOCUMENT SUCCESSFULLY PARSED
    *
    * -----+++++***** USING INFORMATION FROM XML *****+++++-----
    *
    * SANDWICH LIST PRICE: $4.99
    * PROMOTIONAL PRICE: $4.49
    * GET ONE TODAY!
    *

    * procedure inserée en \"inline\"
    XML-HANDLER SECTION.

    *****DISPLAY \'=> <\' XML-TEXT \'>\'

    * gestion des evenements xml

    EVALUATE XML-EVENT

    * ==> ORDER XML EVENTS MOST FREQUENT FIRST
    WHEN \'START-OF-ELEMENT\'
    DISPLAY \'START ELEMENT TAG: <\' XML-TEXT \'>\'
    MOVE XML-TEXT TO CURRENT-ELEMENT

    WHEN \'CONTENT-CHARACTERS\'
    DISPLAY \'CONTENT CHARACTERS: <\' XML-TEXT \'>\'
    * ==> TRANSFORM XML CONTENT TO OPERATIONAL COBOL DATA ITEM...
    EVALUATE CURRENT-ELEMENT
    WHEN \'listprice\'
    * ==> USING FUNCTION NUMVAL-C...
    COMPUTE LIST-PRICE = FUNCTION NUMVAL-C(XML-TEXT)
    WHEN \'discount\'
    * ==> USING DE-EDITING OF A NUMERIC EDITED ITEM...
    MOVE XML-TEXT TO XFR-ED
    MOVE XFR-ED-1 TO DISCOUNT
    END-EVALUATE

    WHEN \'END-OF-ELEMENT\'
    DISPLAY \'END ELEMENT TAG: <\' XML-TEXT \'>\'
    MOVE SPACES TO CURRENT-ELEMENT

    WHEN \'START-OF-DOCUMENT\'
    COMPUTE XML-DOCUMENT-LENGTH = FUNCTION LENGTH(XML-TEXT)
    DISPLAY \'START OF DOCUMENT: LENGTH=\' XML-DOCUMENT-LENGTH
    \' CHARACTERS.\'

    WHEN \'END-OF-DOCUMENT\'
    DISPLAY \'END OF DOCUMENT.\'

    WHEN \'VERSION-INFORMATION\'
    DISPLAY \'VERSION: <\' XML-TEXT \'>\'

    WHEN \'ENCODING-DECLARATION\'
    DISPLAY \'ENCODING: <\' XML-TEXT \'>\'

    WHEN \'STANDALONE-DECLARATION\'
    DISPLAY \'STANDALONE: <\' XML-TEXT \'>\'

    WHEN \'ATTRIBUTE-NAME\'
    DISPLAY \'ATTRIBUTE NAME: <\' XML-TEXT \'>\'

    WHEN \'ATTRIBUTE-CHARACTERS\'
    DISPLAY \'ATTRIBUTE VALUE CHARACTERS: <\' XML-TEXT \'>\'

    WHEN \'ATTRIBUTE-CHARACTER\'
    DISPLAY \'ATTRIBUTE VALUE CHARACTER: <\' XML-TEXT \'>\'

    WHEN \'START-OF-CDATA-SECTION\'
    DISPLAY \'START OF CDATA: <\' XML-TEXT \'>\'

    WHEN \'END-OF-CDATA-SECTION\'
    DISPLAY \'END OF CDATA: <\' XML-TEXT \'>\'

    WHEN \'CONTENT-CHARACTER\'
    DISPLAY \'CONTENT CHARACTER: <\' XML-TEXT \'>\'

    WHEN \'PROCESSING-INSTRUCTION-TARGET\'
    DISPLAY \'PI TARGET: <\' XML-TEXT \'>\'

    WHEN \'PROCESSING-INSTRUCTION-DATA\'
    DISPLAY \'PI DATA: <\' XML-TEXT \'>\'

    WHEN \'COMMENT\'
    DISPLAY \'COMMENT: <\' XML-TEXT \'>\'

    WHEN \'EXCEPTION\'
    COMPUTE XML-DOCUMENT-LENGTH = FUNCTION LENGTH (XML-TEXT)
    DISPLAY \'EXCEPTION \' XML-CODE \' AT OFFSET \'
    XML-DOCUMENT-LENGTH \'.\'

    WHEN OTHER
    DISPLAY \'UNEXPECTED XML EVENT: \' XML-EVENT \'.\'
    END-EVALUATE.

    END PROGRAM TBETMOD2.

Informations du sujet

Utilisateur(s) parcourant ce sujet

il y a actuellement 1 utilisateur(s) parcourant ce sujet. (0 membre(s) et 1 visiteur(s))

Règles des messages

  • Vous ne pouvez pas créer de sujets
  • Vous ne pouvez pas répondre aux sujets
  • Vous ne pouvez pas importer de fichiers joints
  • Vous ne pouvez pas éditer vos messages
  •  
  • Les BB codes sont Activés
  • Les Smileys sont Activés
  • Le BB code [IMG] est Activé
  • Le code [VIDEO] est Activé
  • Le code HTML est Désactivé
Please disable Adblock!