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

RE: xml-sax issue



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
-----------------------------------------------------------------------