[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Query on http_parse_xml_string



   Thanks Alan.

   This is how I am creating the test data in the SQLRPG program.

   exec sql

     values '<PopulateComments> +

             <ServiceRequest>406725</ServiceRequest> +

               <Comment> +

                  <Line>1</Line> +

                  <CreateDate>20111227</CreateDate> +

                  <CreateTime>145232</CreateTime> +

                  <Type>CAUSE</Type> +

                  <Text>Engine oil leak &amp; test</Text> +

                </Comment> +

                <Comment> +

                  <Line>2</Line> +

                  <CreateDate>20111227</CreateDate> +

                  <CreateTime>145232</CreateTime> +

                  <Type>CORRECTION</Type> +

                  <Text>Replace engine oil and other parts</Text> +

                 </Comment> +

             </PopulateComments>' into :DataIn;

   Input data

   XMLDATA.@XMLDATA_DATA =

             ....5...10...15...20...25...30...35...40...45...50...55...60

        1   '<POPULATECOMMENTS> <SERVICEREQUEST>406725</SERVICEREQUEST> <'

       61   'COMMENT> <LINE>1</LINE> <CREATEDATE>20111227</CREATEDATE> <C'

      121   'REATETIME>145232</CREATETIME> <TYPE>CAUSE</TYPE> <TEXT>ENGIN'

      181   'E OIL LEAK &AMP; TEST</TEXT> </COMMENT> <COMMENT> <LINE>2</L'

      241   'INE> <CREATEDATE>20111227</CREATEDATE> <CREATETIME>145232</C'

      301   'REATETIME> <TYPE>CORRECTION</TYPE> <TEXT>REPLACE ENGINE OIL '

      361   'AND OTHER PARTS</TEXT> </COMMENT> </POPULATECOMMENTS>       '

      421   '                                                            '

   Error

    DATAOUT.@XMLDATA_DATA =

              ....5...10...15...20...25...30...35...40...45...50...55...60

         1   '<?xml version="1.0"?><POPULATECOMMENTS><Error>XML parse
   fail'

        61   'ed at line 1, col 191: undefined
   entity</Error></POPULATECOM'

       121   'MENTS>
   '

       181   '
   '

       241   '
   '

   When I change the Input Data and put  & instead of "&amp;" , below
   error is returned

   DATAOUT.@XMLDATA_DATA =

             ....5...10...15...20...25...30...35...40...45...50...55...60

        1   '<?xml version="1.0"?><POPULATECOMMENTS><Error>XML parse fail'

       61   'ed at line 1, col 192: not well-formed (invalid token)</Erro'

      121   'r></POPULATECOMMENTS>                                       '

   Is the function "http_parse_xml_string" capable of handling the special
   characters.

   Thanks for your help.

   Thanks & Regards,

   Abhijit

   On Wed, Jan 11, 2012 at 6:11 PM, Alan Campin <[1]alan0307d@xxxxxxxxx>
   wrote:

       The &amp is the same as putting an & in the xml because & are
     special
       characters I believe. The problem is that I don't think the EXPAT
       parser that Scott uses recognizes the & special strings like
     &quot,
       etc.
       When I dealt with problem it put the xml to a stream file and used
       XML-SAX to parse it and that recognized the special characters. I
     think
       this may be occurring because you have an xml file embedded inside
     the
       main file so you have to extract the files from inside and then
     parse
       it separately. This is not a problem if the resulting file is
       relatively small. It gets trickee if the file embedded inside is
     very
       big and won't fit in a variable. Then you need to write to a
     stream
       file.
       Would need to see the entire XML.

     On Wed, Jan 11, 2012 at 4:24 PM, Abhijit Fulambrikar
     <[1][2]abhijit.fulambrikar@xxxxxxxxx> wrote:
         Hi,
         I have a question regarding the parsing of special character's in
       XML.
         I am using "http_parse_xml_string" to parse the XML string.
   Please
       see
         the
         code below
         xmlError = http_parse_xml_string(%addr(xmlData.@xmlData_Data):
           xmlData.@xmlData_Len: 0: *null: xmlHandler: *null) <> 0;
         if xmlError;
           xmlAddRootAndElement(Process: ERROR: http_error());
         endif;
         The XML data which I am sending has the below tag which has
       special
         character "&". The character is formatted as "&amp;" as shown
       below
         <Text>Replace engine oil &amp; other parts</Text>
         The error which is returned from http_parse_xml_string is as
   below
         XML parse failed at line 1, col 349: undefined entity
         When I tried with the below data
         <Text>Replace engine oil & other parts</Text>
         I get the error as
         XML parse failed at line 1, col 350: not well-formed (invalid
       token)
         Please let me know if I am following some incorrect process.
       Thanks for
         your help.
         Regards,
         Abhijit


     --------------------------------------------------------------------
         ---
         This is the FTPAPI mailing list.  To unsubscribe, please go to:
         [2][3]http://www.scottklement.com/mailman/listinfo/ftpapi

     --------------------------------------------------------------------
         ---
     References
       1. mailto:[4]abhijit.fulambrikar@xxxxxxxxx
       2. [5]http://www.scottklement.com/mailman/listinfo/ftpapi
     --------------------------------------------------------------------
     ---
     This is the FTPAPI mailing list.  To unsubscribe, please go to:
     [6]http://www.scottklement.com/mailman/listinfo/ftpapi
     --------------------------------------------------------------------
     ---

References

   1. mailto:alan0307d@xxxxxxxxx
   2. mailto:abhijit.fulambrikar@xxxxxxxxx
   3. http://www.scottklement.com/mailman/listinfo/ftpapi
   4. mailto:abhijit.fulambrikar@xxxxxxxxx
   5. http://www.scottklement.com/mailman/listinfo/ftpapi
   6. http://www.scottklement.com/mailman/listinfo/ftpapi
-----------------------------------------------------------------------
This is the FTPAPI mailing list.  To unsubscribe, please go to:
http://www.scottklement.com/mailman/listinfo/ftpapi
-----------------------------------------------------------------------