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

RE: xml-sax issue



I keep getting a stringlen of -1, that seems to be part of the issue I think.


> That's because I copied it from the debug session Mike, I even added a
> %trim just to make sure. still only gives me start and end doc nothing in
> between
>
>
>>></MMMProcess>      '
>>
>> At the end of the string - you have 6 extra characters.
>>
>> Reading about XML-SAX came across this that creates a kind of debug for
>> what is happening. Might be helpful.
>>
>> http://www.mysamplecode.com/2011/06/rpgle-xml-parser-xml-sax-and-xml-into_4197.html
>>
>>
>> -----Original Message-----
>> From: ftpapi-bounces@xxxxxxxxxxxxxxxxxxxxxx
>> [mailto:ftpapi-bounces@xxxxxxxxxxxxxxxxxxxxxx] On Behalf Of RPG List
>> Sent: Friday, September 4, 2015 5:34 PM
>> To: HTTPAPI and FTPAPI Projects
>> Subject: RE: xml-sax issue
>>
>> Extra characters?
>>
>>
>>
>>> Not meaning to take this thread off topic but Expat would handle this
>>> simple XML very straight forward.
>>>
>>> If you want to stay with native support, Jon Paris just wrote a nice
>>> series of articles on XML-INTO that are pretty good places to
>>> understand how XML will map to a data structure. First article was
>>> August 4:
>>> http://www.itjungle.com/fhg/fhgindex.html
>>>
>>> Final thought back on topic, your XML has a few extra characters on
>>> the back side. Perhaps they are messing with the parser in some way?
>>> Are you using a varchar for the XML?
>>>
>>> -----Original Message-----
>>> From: ftpapi-bounces@xxxxxxxxxxxxxxxxxxxxxx
>>> [mailto:ftpapi-bounces@xxxxxxxxxxxxxxxxxxxxxx] On Behalf Of RPG List
>>> Sent: Friday, September 4, 2015 5:01 PM
>>> To: HTTPAPI and FTPAPI Projects
>>> Subject: Re: xml-sax issue
>>>
>>> It does not show any errors, in the xml.  I took the string and stuck
>>> in it in a document added the .xml extension and opened it.
>>>
>>> I have no clue why I can't see each ELEMENT name as it loops through
>>> the document.  It gives me START_DOCUMENT on the first pass and then
>>> END_DOCUMENT on the second pass and that's all.
>>>
>>>
>>>> I understand what your saying, I'll double check it that way... I
>>>> misread what you said.
>>>>
>>>> Dutch
>>>>
>>>>
>>>>> Alan,
>>>>> Its coming in as a string, its not stored on the system.
>>>>>
>>>>> Its coming from a web service, its a return response.
>>>>>
>>>>>
>>>>>
>>>>>>    Take the document, make sure it has a .xml on the end and double
>>>>>> click
>>>>>>    in Windows and IE will open as a XML document. If there is
>>>>>> anything
>>>>>>    wrong with the document, it will throw an error telling you were
>>>>>> the
>>>>>>    problem is.
>>>>>>
>>>>>>    On Fri, Sep 4, 2015 at 2:34 PM, RPG List <[1]rpglist@xxxxxxxxxxx>
>>>>>>    wrote:
>>>>>>
>>>>>>      Scott,
>>>>>>      I'm not sure we don't have another problem.  Here's why when
>>>>>> I step
>>>>>>      through the xmlhandler, I get the start_document on the first
>>>>>> read,
>>>>>>      and
>>>>>>      then I get end_document on the second read.  That's it.  Its
>>>>>>      almost as
>>>>>>      though its never seeing the data further.  I ran a test using
>>>>>> the
>>>>>>      following:
>>>>>>      XML = '<xmlTest>+
>>>>>>      Â  Â  Â  Â  Â  Â  Â  Â <name type="author">AS400 Sample
>>>>>> Code/name>+
>>>>>>      Â  Â  Â  Â  Â  Â  Â  Â </xmlTest>';
>>>>>>      that worked.
>>>>>>      Here is what the xml document looks like coming in:
>>>>>>      '<MMMProcess><Results><Claim>8104550</Claim><Amount>1995.83</'
>>>>>>      'Amount><Code>7320</Code><Xrg>53</Xrg><MEANLOS2>2</MEAN'
>>>>>>      'LOS2><Error_Code>0</Error_Code></Results></MMMProcess>Â  Â  Â
>>>>>> '
>>>>>>      I just can't find what's wrong with the xml..
>>>>>>      > Dutch,
>>>>>>      >
>>>>>>      > The XML processing instructions ("header" as you call it) are
>>>>>>      optional.
>>>>>>      > They are not required.
>>>>>>      >
>>>>>>      > The problem is what I said in my first reply to you.Â
>>>>>> Please read
>>>>>>      the
>>>>>>      > article I linked to so you can learn how XML-SAX works.
>>>>>>      >
>>>>>>      > -SK
>>>>>>      >
>>>>>>      >
>>>>>>      > On 9/4/2015 3:18 PM, RPG List wrote:
>>>>>>      >> one additional issue I saw this morning Scott and maybe
>>>>>> this is
>>>>>>      the
>>>>>>      >> problem, the incoming XML does not have what I would call a
>>>>>>      standard
>>>>>>      >> header:
>>>>>>      >>
>>>>>>      >> IE: it does not have a version or description that I see in
>>>>>> most
>>>>>>      xml
>>>>>>      >> documents, maybe that's needed or maybe not?
>>>>>>      >>
>>>>>>      >>
>>>>>>      >>> Dutch,
>>>>>>      >>>
>>>>>>      >>> This looks an awful lot like a program that I wrote a long
>>>>>> time
>>>>>>      ago to
>>>>>>      >>> print the XML events.  I would not recommend using this to
>>>>>>      actually
>>>>>>      >>> parse a document -- to parse with XML-SAX you're going to
>>>>>> need
>>>>>>      to
>>>>>>      >>> create
>>>>>>      >>> a stack of XML elements (implemented in RPG as an array,
>>>>>> most
>>>>>>      likely)
>>>>>>      >>> and keep track of the current XML element you're working
>>>>>> on,
>>>>>>      etc.
>>>>>>      >>> There
>>>>>>      >>> was another program included in that same article called
>>>>>>      "CustXml" that
>>>>>>      >>> demonstrates this -- that program would be a better
>>>>>> starting
>>>>>>      point.
>>>>>>      >>>
>>>>>>      [2]http://iprodeveloper.com/print/rpg-programming/rpgs-xml-sax-opcod
>>>>>>      e
>>>>>>      >>>
>>>>>>      >>> (use the "print" option to format the code better, Penton
>>>>>> media
>>>>>>      has
>>>>>>      >>> screwed up the code figures in their article archive)
>>>>>>      >>>
>>>>>>      >>> Based on what you've shown us, the only thing you'd get in
>>>>>> your
>>>>>>      string
>>>>>>      >>> is the name of the XML tag you're parsing.  (Since that's
>>>>>>      what's
>>>>>>      >>> pointed
>>>>>>      >>> to by "string" during the XML_START_ELEMENT event.)
>>>>>>      >>>
>>>>>>      >>> You say you're getting nothing at all...?  Since you're
>>>>>> getting
>>>>>>      it from
>>>>>>      >>> the 'value' field, you'd need to show us the definition
>>>>>> and/or
>>>>>>      code
>>>>>>      >>> that
>>>>>>      >>> populates 'value' for us to see how that works.  Funny
>>>>>> that you
>>>>>>      omitted
>>>>>>      >>> that part of the code considering that your question is
>>>>>> about
>>>>>>      it?
>>>>>>      >>>
>>>>>>      >>> Also, is this part of a program that uses HTTPAPI or
>>>>>> FTPAPI?Â
>>>>>>      If so, I
>>>>>>      >>> guess we can discuss it here...   if not, however, this
>>>>>> really
>>>>>>      doesn't
>>>>>>      >>> belong on this mailing list.
>>>>>>      >>>
>>>>>>      >>> -SK
>>>>>>      >>>
>>>>>>      >>>
>>>>>>      >>> On 9/3/2015 9:17 PM, RPG List wrote:
>>>>>>      >>>> I am attempting to parse out the data I'm getting from a
>>>>>> web
>>>>>>      service
>>>>>>      >>>> and
>>>>>>      >>>> I'm having a little trouble.
>>>>>>      >>>>
>>>>>>      >>>> I'm using the following as my to the handler:
>>>>>>      >>>>
>>>>>>      >>>>Â  Â  Â  xml = %trim(%subSt(GetResponse:3:5000));
>>>>>>      >>>>Â  Â  Â  xml-sax %handler(xmlHandler: ignoreMe)
>>>>>>      >>>>Â  Â  Â  Â  Â %XML(xml: 'doc=string');
>>>>>>      >>>>
>>>>>>      >>>> GetResponse has the full xml string I'm expecting.
>>>>>>      >>>>
>>>>>>      >>>> my xmlhandler is defined as follows:
>>>>>>      >>>>
>>>>>>      >>>> P xmlHandler      b
>>>>>>      >>>> D                 pi            10i 0
>>>>>>      >>>> D ignore                         1a
>>>>>>      >>>> D event                         10i 0 value
>>>>>>      >>>> D   string                        *  Â
>>>>>> value
>>>>>>      >>>> D   stringLen                   20i 0 value
>>>>>>      >>>> D   exceptionId                 10i 0 value
>>>>>>      >>>>
>>>>>>      >>>> I then have the following code in the procedure:
>>>>>>      >>>>
>>>>>>      >>>> OutputXML.name = XML_Event_Name(event);
>>>>>>      >>>> OutputXML.data = *blanks;
>>>>>>      >>>>
>>>>>>      >>>> select;
>>>>>>      >>>> when string=*null or stringlen<1;
>>>>>>      >>>>Â  Â  Â  // no string given...
>>>>>>      >>>> when stringlen>%size(value);
>>>>>>      >>>>Â  Â  Â  OutputXML.data = '** string length invalid';
>>>>>>      >>>> other;
>>>>>>      >>>>Â  Â  Â  OutputXML.data = %subst(value:1:stringlen);
>>>>>>      >>>> endsl;
>>>>>>      >>>>
>>>>>>      >>>> // Change Current XML group if applicable
>>>>>>      >>>> Select;
>>>>>>      >>>>Â  Â  Â  When OutputXML.name = 'XML_START_ELEMENT';
>>>>>>      >>>>
>>>>>>      >>>>
>>>>>>      >>>>
>>>>>>      >>>>
>>>>>>      >>>> The problem is outputXML.data never has a value that I can
>>>>>>      see.  Am I
>>>>>>      >>>> doing something wrong or am I missing a step?
>>>>>>      >>>>
>>>>>>      >>>>
>>>>>>      >>>>
>>>>>>      >>>>
>>>>>>      >>>>
>>>>>>      >
>>>>>>      >
>>>>>>      --------------------------------------------------------------------
>>>>>>      ---
>>>>>>      > This is the FTPAPI mailing list.  To unsubscribe, please go
>>>>>> to:
>>>>>>      > [3]http://www.scottklement.com/mailman/listinfo/ftpapi
>>>>>>      >
>>>>>>      --------------------------------------------------------------------
>>>>>>      ---
>>>>>>      >
>>>>>>      --------------------------------------------------------------------
>>>>>>      ---
>>>>>>      This is the FTPAPI mailing list.  To unsubscribe, please go
>>>>>> to:
>>>>>>      [4]http://www.scottklement.com/mailman/listinfo/ftpapi
>>>>>>      --------------------------------------------------------------------
>>>>>>      ---
>>>>>>
>>>>>> References
>>>>>>
>>>>>>    1. mailto:rpglist@xxxxxxxxxxx
>>>>>>    2.
>>>>>> http://iprodeveloper.com/print/rpg-programming/rpgs-xml-sax-opcode
>>>>>>    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
>>>>>> -------------------------------------------------------------------
>>>>>> -
>>>>>> ---
>>>>>>
>>>>>
>>>>>
>>>>> --------------------------------------------------------------------
>>>>> -
>>>>> -- This is the FTPAPI mailing list.  To unsubscribe, please go to:
>>>>> 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
>>>> ---------------------------------------------------------------------
>>>> -
>>>> -
>>>>
>>>>
>>>
>>>
>>> ----------------------------------------------------------------------
>>> - This is the FTPAPI mailing list.  To unsubscribe, please go to:
>>> 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
>>> ----------------------------------------------------------------------
>>> -
>>>
>>>
>>
>>
>> -----------------------------------------------------------------------
>> This is the FTPAPI mailing list.  To unsubscribe, please go to:
>> 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
>> -----------------------------------------------------------------------
>>
>>
>
>
> -----------------------------------------------------------------------
> This is the FTPAPI mailing list.  To unsubscribe, please go to:
> 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
-----------------------------------------------------------------------