[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: xml-sax issue
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
-----------------------------------------------------------------------