[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
RE: Query on http_parse_xml_string
Hi Abhijit,
I would try this way and see if it works:
First define the "&Amp;" variable as a constant or using the hex
representation. Either one should do the trick.
d rAmp c Const('&')
d sAmp c Const(x'50')
Also two variables for the SQL Value:
d DataIn s 2000 Inz(*Blanks)
d DataOut s 2000 Inz(*Blanks)
DataIn =<PopulateComments>
DataIn = '<PopulateComments> +
<ServiceRequest>406725</ServiceRequest> +
<Comment> +
<Line>1</Line> +
<CreateDate>20111227</CreateDate> +
<CreateTime>145232</CreateTime> +
<Type>CAUSE</Type> +
<Text>Engine oil leak ' + (either rAmp or sAmp) +
'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>';
c/Exec Sql Values
+ :DataIn Into :DataOut
c/End-Exec
Best Regards
Date: Thu, 12 Jan 2012 11:20:56 -0600
Subject: Re: Query on http_parse_xml_string
From: abhijit.fulambrikar@xxxxxxxxx
To: ftpapi@xxxxxxxxxxxxxxxxxxxxxx
Yes, every thing else is working fine. I get the error only when the parser
tries to parse the tag which has "&".
For other tags, my parser procedure gets a call and I am able to get the
data.
If I remove the "&", everything works good.
On Thu, Jan 12, 2012 at 10:45 AM, Alan Campin <Alan.Campin@xxxxxxxxxxxxx>wrote:
> What does the & in your data mean? If you remove the & from the
> insert does everything work?
>
> -----Original Message-----
> From: ftpapi-bounces@xxxxxxxxxxxxxxxxxxxxxx [mailto:
> ftpapi-bounces@xxxxxxxxxxxxxxxxxxxxxx] On Behalf Of Abhijit Fulambrikar
> Sent: Thursday, January 12, 2012 9:34 AM
> To: HTTPAPI and FTPAPI Projects
> Subject: 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 & 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 & 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 "&" , 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 <alan0307d@xxxxxxxxx> wrote:
>
> > The & 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 ",
> > 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]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 "&" as shown
> > below
> > <Text>Replace engine oil & 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][1]http://www.scottklement.com/mailman/listinfo/ftpapi
> > --------------------------------------------------------------------
> > ---
> >
> > References
> >
> > 1. mailto:abhijit.fulambrikar@xxxxxxxxx
> > 2. [2]http://www.scottklement.com/mailman/listinfo/ftpapi
> >
> > ----------------------------------------------------------------------
> > - This is the FTPAPI mailing list. To unsubscribe, please go to:
> > [3]http://www.scottklement.com/mailman/listinfo/ftpapi
> > ----------------------------------------------------------------------
> > -
> >
> >
>
> -----
> No virus found in this message.
> Checked by AVG - www.avg.com
> Version: 2012.0.1901 / Virus Database: 2109/4738 - Release Date: 01/12/12
> -----------------------------------------------------------------------
> This is the FTPAPI mailing list. To unsubscribe, please go to:
> [4]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
-----------------------------------------------------------------------
References
1. http://www.scottklement.com/mailman/listinfo/ftpapi
2. http://www.scottklement.com/mailman/listinfo/ftpapi
3. http://www.scottklement.com/mailman/listinfo/ftpapi
4. 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
-----------------------------------------------------------------------