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

Re: xml-sax issue



XML-INTO is usually a lot less work than XML-SAX unless you only want a small portion of the data. From what you posted earlier it didn’t look that complex - what problems did you encounter with XML-INTO?


On Sep 8, 2015, at 2:21 PM, RPG List <rpglist@xxxxxxxxxxx> wrote:

> Scott the 3:5000 is a typo, that should be a 1.
> 
> I am using XML-SAX because I wasn't able to get XML-INTO to work. 
> However, I found out this morning that the XML is coming in as UTF-8.  I
> asked him to change that to 16 for a test, since I recall reading that RPG
> does not like 8.
> 
> I'm open to suggestions to make this learning curve easier
> 
> 
>> Dutch,
>> 
>> You are doing this:
>> 
>> xml = %trim(%subSt(GetResponse:3:5000));
>> 
>> Can you explain why you are doing that %subst?  Wouldn't that cause the
>> '<M' at the start of the XML document to be chopped off, making this an
>> invalid document?
>> 
>> The %trim() is not necessary, but shouldn't hurt anything.
>> 
>> Can you explain why you want to use XML-SAX here instead of XML-INTO or
>> the XML parser included with HTTPAPI?  (Which is a wrapper around Expat)
>> 
>> 
>> On 9/4/2015 4:34 PM, RPG List 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.
>>>>>> 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
> -----------------------------------------------------------------------

Jon Paris

www.partner400.com
www.SystemiDeveloper.com

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