Hi all<br><br>I've got xml files that I receive from Meteo France (weather forecast) that I have to query and map to some objects<br>I've tried several stuff like parsing the file, selecting only some elements,&nbsp; displaying it with a WATree but I'm a bit stuck as none results I got are good enough.
<br><br>The structure is like behind:<br><br>&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot; ?&gt;...<br>&lt;donnees&gt;
<br>&lt;dates&gt;...&lt;/dates&gt;<br>&lt;prevision&gt;<br>&nbsp;&lt;prev num=&quot;1&quot;&gt;&nbsp;&nbsp;&nbsp; // a prev concern a zone for 3 hours - there are 18 prev for a given zone<br>&nbsp; &lt;ZONE&gt;6403&lt;/ZONE&gt;<br>&nbsp; &lt;VALIDITE&gt;200606292000&lt;/VALIDITE&gt;
<br><div style="direction: ltr;">
&nbsp; &lt;JJ&gt;20060629&lt;/JJ&gt;<br>&nbsp; &lt;HH&gt;2000&lt;/HH&gt;<br>&nbsp; &lt;T&gt;24&lt;/T&gt;<br>&nbsp; &lt;PICTO&gt;P6&lt;/PICTO&gt;<br>&nbsp; &lt;DD&gt;315&lt;/DD&gt;<br>&nbsp; &lt;FF&gt;10&lt;/FF&gt;<br>&nbsp; &lt;RAF&gt;&lt;/RAF&gt;<br>&nbsp; &lt;ISO_ZERO&gt;4100&lt;/ISO_ZERO&gt;
<br>&nbsp; &lt;LIMIT_PLUIE_NEIGE&gt;&lt;/LIMIT_PLUIE_NEIGE&gt;<br>&nbsp; &lt;W1&gt;0&lt;/W1&gt;<br>&nbsp; &lt;W2&gt;&lt;/W2&gt;<br>&nbsp; &lt;NEBUL_TOT&gt;3&lt;/NEBUL_TOT&gt;<br>&nbsp; &lt;BASE_NUAGE&gt;&lt;/BASE_NUAGE&gt;<br>&nbsp; &lt;SOMMET_NUAGE&gt;&lt;/SOMMET_NUAGE&gt;
<br>&nbsp; &lt;FF1500M&gt;5&lt;/FF1500M&gt;<br>&nbsp; &lt;FF3000M&gt;25&lt;/FF3000M&gt;<br>&nbsp; &lt;RR6&gt;0.4&lt;/RR6&gt;<br>&nbsp; &lt;W3&gt;&lt;/W3&gt;<br>&nbsp; &lt;EPAIS_NEIGE&gt;&lt;/EPAIS_NEIGE&gt;<br>&nbsp; &lt;VIGILANCE&gt;&lt;/VIGILANCE&gt;&lt;/prev&gt;
<br><br>
</div>
....&nbsp;&nbsp; around 450 prev (18 for each ZONE)<br><br>&nbsp; &lt;prevQ num=&quot;1&quot;&gt;&nbsp;&nbsp; // this are prevision for the whole day - 4 prevQ in each file for a given zone<br>&nbsp; &lt;ZONE&gt;3107&lt;/ZONE&gt;<br>&nbsp; &lt;VALIDITE&gt;200606290000&lt;/VALIDITE&gt;
<br><div style="direction: ltr;">&nbsp; &lt;JJ&gt;20060629&lt;/JJ&gt;<br>&nbsp; &lt;TN&gt;15&lt;/TN&gt;<br>&nbsp; &lt;TX&gt;26&lt;/TX&gt;<br>&nbsp; &lt;RR24&gt;1.0&lt;/RR24&gt;<br>&nbsp; &lt;UN&gt;60&lt;/UN&gt;<br>&nbsp; &lt;UX&gt;100&lt;/UX&gt;&lt;/prevQ&gt;
<br>...<br></div>&lt;/prevision&gt;<br>&lt;/donnees&gt;<br><br><br>What I need to do is quering the file according to the some attribute (ZONE, VALIDITE, JJ and HH) so as to get the different value that characterize the weather forecast. The only thing I can do is selecting nodes accoring to one parameter, for instance all prevQ element of zone 6504 (using Xpath).
<br><br>| xml document path results |<br> &nbsp; &nbsp;xml := (StandardFileStream readOnlyFileNamed: 'ressources/MF/backup/sympo0805200617h00.xml') contents.<br><div style="direction: ltr;"> &nbsp; &nbsp;document := XMLDOMParser parseDocumentFrom: xml readStream.
<br> &nbsp; &nbsp;path := XPath for: 'prevision/prev'.<br> &nbsp; &nbsp;results := path in: document.<br> &nbsp; &nbsp;^ results<br> &nbsp; &nbsp; &nbsp; &nbsp;select: [:xmlElem | (xmlElem elementAt: #ZONE) contents first<br>string = '6504']</div><br>
<br><br>I'm a bit lost now. Is it possible to map to objects ?&nbsp; do I need to work directly on xml file by xsl transformation ? I don't really understand how to use a sax parser (I always do a full dom parse that I store in an inst var).
<br><br>Do you have advices, pointers or other good practises that can help me ?<br><br>Thanks <br><br>Cédrick<br><br><br><br>