PC SOFT

PROFESSIONAL NEWSGROUPS
WINDEVWEBDEV and WINDEV Mobile

Home → WINDEV 2024 → données d'un document XML
données d'un document XML
Started by NiCo, Feb., 09 2006 10:32 AM - No answer
Posted on February, 09 2006 - 10:32 AM
Bonjour,

Voilà, je voudrais extraire certaines données d'un document XML dans le
but de remplir une liste. L'ennui, c'est que même avec l'aide de WinDev,
je ne parviens pas à obtenir un résultat correct.

Voici le code que j'utilise actuellement (ne se base pas sur les
fonctions XML, ce qui pose un problème lorsque certaines données
manquent, comme les données <epg_xxxx> par exemple) :

// Déclaration des variables
name, logo, epgtype, epgstart, epgend, epgtitle sont des chaînes
AudienceId = fOuvre("audience15.xml", foLecture)
BOUCLE
name = fLitLigne(AudienceId)
logo = fLitLigne(AudienceId)
SI HTTPRequête(logo) ALORS
fSauveTexte("AudienceIcones\" + logo[[ 33 A ]],
HTTPDonneRésultat(HTTPRésultat))
logo = logo[[ 33 A ]]
SINON
logo = ""
FIN
epgtype = fLitLigne(AudienceId)
epgstart = fLitLigne(AudienceId)
epgend = fLitLigne(AudienceId)
epgtitle = fLitLigne(AudienceId)
ListeAjoute(FWAR.ListeChaines, gImage("AudienceIcones\" + logo) + name
+ " : " + epgtitle + RC + "Type : " + epgtype + RC + "Début : " +
epgstart + " - Fin : " + epgend)
A FAIRE TANTQUE fLitLigne(AudienceId) <> EOT

Comme vous le voyez, si certaines onnées manquent, tout est faussé. Je
donne un fichier audience15.xml d'exemple por celui qui voudra bien me
faire ça. Pour la listeAjoute, Si pour une donnée <name> il n'y a pas de
donnée <epg_*> correspondante , je souhaiterai que "inconnu" s'affiche à
la place.

Voici le fichier de tests

<?xml version="1.0" encoding="ISO-8859-1"?>
<audience15>
<refresh>60</refresh>
<url>http://audience.free.fr/audience15.xml<channel>
<rank>1</rank>
<name>France 2</name>
<market_share>10.35</market_share>
<logo_url>

<epg_type>Autre</epg_type>
<epg_start>13:00</epg_start>
<epg_end>13:50</epg_end>
<epg_title>Journal</epg_title>
</channel>
<channel>
<rank>2</rank>
<name>Gulli</name>
<market_share>7.50</market_share>
<logo_url>

<epg_type>Série</epg_type>
<epg_start>13:05</epg_start>
<epg_end>13:35</epg_end>
<epg_title>Sabrina</epg_title>
</channel>
<channel>
<rank>3</rank>
<name>France 3</name>
<market_share>5.32</market_share>
<logo_url>

<epg_type>Autre</epg_type>
<epg_start>12:55</epg_start>
<epg_end>13:25</epg_end>
<epg_title>12/14 : Edition régionale</epg_title>
</channel>
<channel>
<rank>4</rank>
<name>W9</name>
<market_share>4.75</market_share>
<logo_url>

<epg_type>Série</epg_type>
<epg_start>12:50</epg_start>
<epg_end>13:15</epg_end>
<epg_title>Les Simpson</epg_title>
</channel>
<channel>
<rank>5</rank>
<name>AB 1</name>
<market_share>4.63</market_share>
<logo_url>

<epg_type>Série</epg_type>
<epg_start>12:45</epg_start>
<epg_end>13:10</epg_end>
<epg_title>Friends</epg_title>
</channel>
<channel>
<rank>6</rank>
<name>MTV France</name>
<market_share>3.92</market_share>
<logo_url>

<epg_type>Autre</epg_type>
<epg_start>12:30</epg_start>
<epg_end>13:30</epg_end>
<epg_title>Made</epg_title>
</channel>
<channel>
<rank>7</rank>
<name>France 5</name>
<market_share>3.53</market_share>
<logo_url>

<epg_type>Magazine</epg_type>
<epg_start>12:05</epg_start>
<epg_end>13:40</epg_end>
<epg_title>Midi les zouzous</epg_title>
</channel>
<channel>
<rank>8</rank>
<name>CANAL+</name>
<market_share>3.14</market_share>
<logo_url>

<epg_type>Magazine</epg_type>
<epg_start>12:35</epg_start>
<epg_end>13:40</epg_end>
<epg_title>Nous ne sommes pas des anges En clair</epg_title>
</channel>
<channel>
<rank>9</rank>
<name>Game One</name>
<market_share>2.86</market_share>
<logo_url>

<epg_type>Magazine</epg_type>
<epg_start>12:55</epg_start>
<epg_end>13:30</epg_end>
<epg_title>Play Hit</epg_title>
</channel>
<channel>
<rank>10</rank>
<name>M6 Music Black</name>
<market_share>2.61</market_share>
<logo_url>

<epg_type>Autre</epg_type>
<epg_start>12:15</epg_start>
<epg_end>16:00</epg_end>
<epg_title>Hits</epg_title>
</channel>
<channel>
<rank>11</rank>
<name>NRJ 12</name>
<market_share>2.26</market_share>
<logo_url>

<epg_type>Autre</epg_type>
<epg_start>13:00</epg_start>
<epg_end>13:30</epg_end>
<epg_title>Marina en backstage</epg_title>
</channel>
<channel>
<rank>12</rank>
<name>Euronews</name>
<market_share>2.17</market_share>
<logo_url>

<epg_type>Magazine</epg_type>
<epg_start>13:00</epg_start>
<epg_end>15:00</epg_end>
<epg_title>L'information de la mi-journée</epg_title>
</channel>
<channel>
<rank>13</rank>
<name>NT1</name>
<market_share>2.07</market_share>
<logo_url>

<epg_type>Série</epg_type>
<epg_start>12:35</epg_start>
<epg_end>13:25</epg_end>
<epg_title>Les vacances de l'amour</epg_title>
</channel>
<channel>
<rank>14</rank>
<name>Boomerang</name>
<market_share>1.87</market_share>
<logo_url>

<epg_type>Autre</epg_type>
<epg_start>12:50</epg_start>
<epg_end>13:15</epg_end>
<epg_title>Titi et Grosminet mènent l'enquête</epg_title>
</channel>
<channel>
<rank>15</rank>
<name>M6 Music Hits</name>
<market_share>1.86</market_share>
<logo_url>

</channel>
<copyright>Source: Free - Audience ensemble Freebox TV: Audience15Live -
February 2006 - Copyright Free - Tous droits réservés -</copyright>
</audience15>

Merci d'avance à celui qui voudra bien m'aider.