× The internal search function is temporarily non-functional. The current search engine is no longer viable and we are researching alternatives.
As a stop gap measure, we are using Google's custom search engine service.
If you know of an easy to use, open source, search engine ... please contact support@midrange.com.



It is very simple in my XML-reader

dow xmlReader = 0;
select;
when xmlGetNode = '/operationResult';
xmlToStmf(xmlAddrInner:xmlSizeInner:'/mynewxmlfile.xml':1208);
endsl;
enddo;

However - the guy's that sends you this embedded XML should be shoot at
sight
because when you embed mark-up languages into another it should enclosed in
in

<![CDATA[...imbeddedxml...]]>

and mark-up characters shouldn't be translated into &lt; &gt;



On Fri, May 6, 2011 at 5:42 PM, Alan Campin <alan0307d@xxxxxxxxx> wrote:

Thi is just a partial. Between the operationResult tags is about 250,000
bytes of data so must extract to use your HTTP_XML_Parse_Stmf.

This is more for my information that anything else. Because I am at V6R1 I
could declare a huge variable and do an XM-INTO to extract it. My
understanding was that the handler would break it down into smaller pieces
but it didn't do it.

One other thing that surprised the hell out of me was that XML-Into
converted all the &lt; , &gt; and &quot without me saying anything. That
was
wild. Don't know how it knew to do it. .

<?xml version='1.0' encoding='UTF-8'?>
<S:Envelope xmlns:S="http://schemas.xmlsoap.org/soap/envelope/";>
<S:Body><ns2:ServiceResponse xmlns:ns2="http://stem.startrak.com/gw/";>
<status>0</status>
<sessionId>77ef1268:12fc5c6e72f:-7c84</sessionId>
<operationResult>&lt;?xml version=&quot;1.0&quot;
encoding=&quot;UTF-8&quot; standalone=&quot;yes&quot;?&gt;
&lt;ns2:StMessage xmlns:ns2=&quot;
http://ramp.startrak.com/RAMP.1.0.0/&quot;&gt;
&lt;status&gt;0&lt;/status&gt;
&lt;messageTypes&gt;REEFER_STATUS&lt;/messageTypes&gt;
&lt;messageCount&gt;100&lt;/messageCount&gt;
&lt;queueStatus&gt;MORE_DATA&lt;/queueStatus&gt;
&lt;ReeferStatusMessage&gt;
&lt;asset&gt;
&lt;assetName&gt;ENGZ30301&lt;/assetName&gt;
&lt;assetState&gt;1&lt;/assetState&gt;
&lt;config&gt;
&lt;microConfig&gt;
&lt;microManufacturer&gt;1&lt;/microManufacturer&gt;
&lt;microModel&gt;3&lt;/microModel&gt;
&lt;microType&gt;1&lt;/microType&gt;
&lt;compartmentCount&gt;1&lt;/compartmentCount&gt;
&lt;/microConfig&gt;
&lt;rtConfig&gt;

&lt;unitSerialNumber&gt;GCTH001884&lt;/unitSerialNumber&gt;

&lt;unitFirmwareRelease&gt;W0096&lt;/unitFirmwareRelease&gt;

&lt;unitFirmwareVersion&gt;3.60&lt;/unitFirmwareVersion&gt;
&lt;/rtConfig&gt;
&lt;/config&gt;
&lt;/asset&gt;
&lt;reeferStatus&gt;
&lt;alerts&gt;
&lt;batteryAlert&gt;0&lt;/batteryAlert&gt;
&lt;fuelAlert&gt;0&lt;/fuelAlert&gt;
&lt;pmAlert&gt;1&lt;/pmAlert&gt;
&lt;temp1Alert&gt;0&lt;/temp1Alert&gt;
&lt;temp2Alert&gt;0&lt;/temp2Alert&gt;
&lt;temp3Alert&gt;0&lt;/temp3Alert&gt;
&lt;/alerts&gt;
&lt;ambientTemp&gt;82.4&lt;/ambientTemp&gt;
&lt;batteryVoltage&gt;13.6&lt;/batteryVoltage&gt;
&lt;compartmentStatus&gt;
&lt;dischargeTemp&gt;48.2&lt;/dischargeTemp&gt;

On Fri, May 6, 2011 at 9:21 AM, Scott Klement <rpg400-l@xxxxxxxxxxxxxxxx
wrote:

> hi Alan,

Can you explain better? I'm at a complete loss as to what you are
asking or trying to accomplish. It would help greatly if we could see
an excerpt of the XML data!

As coded, I'm expecting your XML document to look like this:

<S:Envelope>
<S:Body>
<ns2:ServiceResponds>
<operationResult>
<InBlocks>...up to 32k of data with no tags...</InBlocks>
<InBlocks>...up to 32k of data with no tags...</InBlocks>
<InBlocks>...up to 32k of data with no tags...</InBlocks>
(repeated 35 times)
</operationResult>
</ns2:ServiceResponds>
</S:Body>
</S:Envelope>

That seems to be what you've coded for, but you say it doesn't work,
which makes me think your XML document doesn't actually look like that.


On 5/5/2011 5:23 PM, Alan Campin wrote:
I am having to extract a very large block of xml(250,000 bytes) from
within
an XML document envelope.

In looking at the documentation, it seems that XML-INTO using a handler
could handle this.

It seemed to indicate that if I did the following

p ResultHandler...
p b
d pi
d InOutCommArea...
d LikeDs(TD_CommArea)
d InBlocks...
d 32767a Varying
d Dim(35)
d Const
d InNumberOfElements...
d 10u 0 Value
/Free

Options = 'doc=file
path=S:Envelope/S:Body/ns2:ServiceResponds/operationResult';
XML-Into %Handler(ResultHandler : EmbeddComm)
%Xml(SoapFile: Options);

/End-Free

The documentation seems to indicate that it would take the data and
break
it
up into 32767 byte blocks and I would get the number of elements
loaded.

That is not what happened. Instead I got one element loaded with 32767
bytes
of data and that was it.

This gets back that problem of processing large blocks of data in RPG.

Is there a trick to do this?

--
This is the RPG programming on the IBM i / System i (RPG400-L) mailing
list
To post a message email: RPG400-L@xxxxxxxxxxxx
To subscribe, unsubscribe, or change list options,
visit: http://lists.midrange.com/mailman/listinfo/rpg400-l
or email: RPG400-L-request@xxxxxxxxxxxx
Before posting, please take a moment to review the archives
at http://archive.midrange.com/rpg400-l.


--
This is the RPG programming on the IBM i / System i (RPG400-L) mailing list
To post a message email: RPG400-L@xxxxxxxxxxxx
To subscribe, unsubscribe, or change list options,
visit: http://lists.midrange.com/mailman/listinfo/rpg400-l
or email: RPG400-L-request@xxxxxxxxxxxx
Before posting, please take a moment to review the archives
at http://archive.midrange.com/rpg400-l.





As an Amazon Associate we earn from qualifying purchases.

This thread ...

Replies:

Follow On AppleNews
Return to Archive home page | Return to MIDRANGE.COM home page

This mailing list archive is Copyright 1997-2024 by midrange.com and David Gibbs as a compilation work. Use of the archive is restricted to research of a business or technical nature. Any other uses are prohibited. Full details are available on our policy page. If you have questions about this, please contact [javascript protected email address].

Operating expenses for this site are earned using the Amazon Associate program and Google Adsense.