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

Re: xml-sax issue



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.
> http://iprodeveloper.com/print/rpg-programming/rpgs-xml-sax-opcode
>
> (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:
>> 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
-----------------------------------------------------------------------