Comment utiliser XML de façon hierarchique comme en .Net?
Bonjour,
J'aurais besoin d'un indice d'utilisation des fonctions XML de WinDev qui me paraissent peu adéquates à première vue.
Je m'explique, en prenant cet exemple:
Code:
1 2 3 4 5 6 7
| Exemple de fichier XML:
<root>
<element1 id="6">
<element2 id="N">
</element2>
</element1>
</root> |
En .Net, je peux faire une sorte de:
Code:
1 2 3 4 5 6 7 8
| foreach(XmlNode objNode in Root.ChildNodes) //Récupérer tous les element1
{
//Pour chaque element1
foreach(XmlNode objSousNode in objNode.ChildNodes) //Récupérer tous les element2
{
//Pour chaque element2
}
} |
En WinDev, on dirait que je ne peux pas savoir à quel niveau je me situe? Je m'explique: je ne semble pas être capable d'avoir le nombre d'éléments enfants, ni d'avoir un moyen de savoir à quel niveau dans l'arborescence je me situe :?
On dirait qu'aucune fonction du style XmlSuivant n'est trouvable pour chercher les "frères" uniquement (c'est à dire les noeuds du même niveau).
La seule solution qui semble possible c'est de spammer des XMLExécutePath pour réclamer ces informations, mais les XMLExécutePath sont incompatibles exécutable Java et sont probablement lourds au niveau temps d'exécution.
Et les requêtes XPath ne semblent pas être utilisables dans le cas de requêtes imbriquées (à moins que ça soit possible en utilisant les fonctions de sauvegarde du contexte (XML[Retour|Sauve]Position)?
Je suis pas mal déçu de WinDev là dessus... est-ce que je manque une solution importante ou bien j'ai raison?
Mon fix rapide serait de modifier le programme qui génère le code XML d'origine afin qu'il indique un saut dans l'arborescence (on remonte d'un niveau (parent)) avec une balise du style <break />. Mais bon ça n'a rien de propre dans mon code et un simple oubli de cette balise rendra mon code instable...
Si vous avez une suggestion n'hésitez pas.