Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

WD12 et XML

5 réponses
Avatar
tjfromparis
Bonjour

J'ai un document XML (tres long !) et relativement complexe au niveau
des balises (jusqu'=E0 5 attributs)

Pour rechercher ce que je cherches j'ai pas de soucis par contre c'est
apres....

Ce que je cherches =E0 faire :
- Recherche la balise avec les bons attributs (ca c'est ok)
- une fois la balise trouv=E9 : arreter la recherche sans changer de
position (donc rester =E0 la position ou XMLRecherche =E0 trouv=E9 la balis=
e
que je cherchais)
- =E0 partir de la position courante , lire les elements de niveau
inferieur avec un XMLLit
le soucis est que XMLlit attend un chemin complet et je ne sais pas
comment lui passer !
(peut etre de la forme :
<nom_balise attribut1=3Dvaleur1 attribut2=3Dvaleur2 attribut3=3Dvaleur3
attribut4=3Dvaleur4 attribut5=3Dvaleur5>)

bref, windev est un poil largu=E9 par rapport =E0 la puissance de
serialisation xml du C# (sauf que j'ai pas trop envie de me taper de
la serialisation avec un assembly vu que je sais meme pas s'il y aura
le framework ou mon soft va tourner )


Mon doc xml ressemble =E0 ca :

<nom_balise attribut1=3Dvaleur1 attribut2=3Dvaleur2 attribut3=3Dvaleur3
attribut4=3Dvaleur4 attribut5=3Dvaleur5>)
<balise_ouvrante>
<balise_ouvrante>
<info>toto</info>
<nom_balise attribut1=3Dvaleur1 attribut2=3Dvaleur2 attribut3=3Dvaleur3
attribut4=3Dvaleur4 attribut5=3Dvaleur5>)
<balise_ouvrante>
<balise_ouvrante>
<info>toto</info>
<nom_balise attribut1=3Dvaleur1 attribut2=3Dvaleur2 attribut3=3Dvaleur3
attribut4=3Dvaleur4 attribut5=3Dvaleur5>)
<balise_ouvrante>
<balise_ouvrante>
<info>toto</info>


J'ai bien essay=E9 d'extraire le "morceau" du document XMl qui
m'interesse avec XMLExtraitDocument mais je dois pas etre au point sur
cette fonction.


si quelqu'un passe par l=E0 et =E0 une bonne id=E9e, je suis preneur ^^

5 réponses

Avatar
JeAn-PhI
a émis l'idée suivante :
Bonjour

J'ai un document XML (tres long !) et relativement complexe au niveau
des balises (jusqu'à 5 attributs)

Pour rechercher ce que je cherches j'ai pas de soucis par contre c'est
apres....

Ce que je cherches à faire :
- Recherche la balise avec les bons attributs (ca c'est ok)
- une fois la balise trouvé : arreter la recherche sans changer de
position (donc rester à la position ou XMLRecherche à trouvé la balise
que je cherchais)
- à partir de la position courante , lire les elements de niveau
inferieur avec un XMLLit
le soucis est que XMLlit attend un chemin complet et je ne sais pas
comment lui passer !
(peut etre de la forme :
<nom_balise attribut1=valeur1 attribut2=valeur2 attribut3=valeur3
attribut4=valeur4 attribut5=valeur5>)

bref, windev est un poil largué par rapport à la puissance de
serialisation xml du C# (sauf que j'ai pas trop envie de me taper de
la serialisation avec un assembly vu que je sais meme pas s'il y aura
le framework ou mon soft va tourner )


Mon doc xml ressemble à ca :

<nom_balise attribut1=valeur1 attribut2=valeur2 attribut3=valeur3
attribut4=valeur4 attribut5=valeur5>)
<balise_ouvrante>
<balise_ouvrante>
<info>toto</info>
<nom_balise attribut1=valeur1 attribut2=valeur2 attribut3=valeur3
attribut4=valeur4 attribut5=valeur5>)
<balise_ouvrante>
<balise_ouvrante>
<info>toto</info>
<nom_balise attribut1=valeur1 attribut2=valeur2 attribut3=valeur3
attribut4=valeur4 attribut5=valeur5>)
<balise_ouvrante>
<balise_ouvrante>
<info>toto</info>


J'ai bien essayé d'extraire le "morceau" du document XMl qui
m'interesse avec XMLExtraitDocument mais je dois pas etre au point sur
cette fonction.


si quelqu'un passe par là et à une bonne idée, je suis preneur ^^



utilisez XMLSuivant pour descendre dans l'arbo puis XMLParent pour
remonter

--
Cordialement JeAn-PhI
Avatar
tjfromparis
On 9 sep, 15:34, JeAn-PhI wrote:
a émis l'idée suivante :



> Bonjour

> J'ai un document XML (tres long !) et relativement complexe au niveau
> des balises (jusqu'à 5 attributs)

> Pour rechercher ce que je cherches j'ai pas de soucis par contre c'est
> apres....

> Ce que je cherches à faire :
> - Recherche la balise avec les bons attributs (ca c'est ok)
> - une fois la balise trouvé : arreter la recherche sans changer de
> position (donc rester à la position ou XMLRecherche à trouvé la b alise
> que je cherchais)
> - à partir de la position courante , lire les elements de niveau
> inferieur avec un XMLLit
> le soucis est que XMLlit attend un chemin complet et je ne sais pas
> comment lui passer !
> (peut etre de la forme :
>  <nom_balise attribut1=valeur1 attribut2=valeur2 attribut3=vale ur3
> attribut4=valeur4 attribut5=valeur5>)

> bref, windev est un poil largué par rapport à la puissance de
> serialisation xml du C# (sauf que j'ai pas trop envie de me taper de
> la serialisation avec un assembly vu que je sais meme pas s'il y aura
> le framework ou mon soft va tourner )

> Mon doc xml ressemble à ca :

>  <nom_balise attribut1=valeur1 attribut2=valeur2 attribut3=vale ur3
> attribut4=valeur4 attribut5=valeur5>)
>        <balise_ouvrante>
>               <balise_ouvrante>
>                      <info>toto</info>
>  <nom_balise attribut1=valeur1 attribut2=valeur2 attribut3=vale ur3
> attribut4=valeur4 attribut5=valeur5>)
>        <balise_ouvrante>
>               <balise_ouvrante>
>                      <info>toto</info>
>  <nom_balise attribut1=valeur1 attribut2=valeur2 attribut3=vale ur3
> attribut4=valeur4 attribut5=valeur5>)
>        <balise_ouvrante>
>               <balise_ouvrante>
>                      <info>toto</info>

> J'ai bien essayé d'extraire le "morceau" du document XMl qui
> m'interesse avec XMLExtraitDocument mais je dois pas etre au point sur
> cette fonction.

> si quelqu'un passe par là et à une bonne idée, je suis preneur ^^

utilisez XMLSuivant pour descendre dans l'arbo puis XMLParent pour
remonter

--
Cordialement JeAn-PhI



ouaip bien sur, mais avec cette méthode, il faut que le xml soit
toujours structuré pareil (balise dans le meme ordre)
c'est pour ca que j'aimerais eviter de faire comme ca.
Avatar
JeAn-PhI
Après mûre réflexion, a écrit :
On 9 sep, 15:34, JeAn-PhI wrote:
a émis l'idée suivante :



Bonjour



J'ai un document XML (tres long !) et relativement complexe au niveau
des balises (jusqu'à 5 attributs)



Pour rechercher ce que je cherches j'ai pas de soucis par contre c'est
apres....



Ce que je cherches à faire :
- Recherche la balise avec les bons attributs (ca c'est ok)
- une fois la balise trouvé : arreter la recherche sans changer de
position (donc rester à la position ou XMLRecherche à trouvé la balise
que je cherchais)
- à partir de la position courante , lire les elements de niveau
inferieur avec un XMLLit
le soucis est que XMLlit attend un chemin complet et je ne sais pas
comment lui passer !
(peut etre de la forme :
 <nom_balise attribut1=valeur1 attribut2=valeur2 attribut3=valeur3
attribut4=valeur4 attribut5=valeur5>)
bref, windev est un poil largué par rapport à la puissance de
serialisation xml du C# (sauf que j'ai pas trop envie de me taper de
la serialisation avec un assembly vu que je sais meme pas s'il y aura
le framework ou mon soft va tourner )
Mon doc xml ressemble à ca :



 <nom_balise attribut1=valeur1 attribut2=valeur2 attribut3=valeur3
attribut4=valeur4 attribut5=valeur5>)
       <balise_ouvrante>
              <balise_ouvrante>
                     <info>toto</info>
 <nom_balise attribut1=valeur1 attribut2=valeur2 attribut3=valeur3
attribut4=valeur4 attribut5=valeur5>)
       <balise_ouvrante>
              <balise_ouvrante>
                     <info>toto</info>
 <nom_balise attribut1=valeur1 attribut2=valeur2 attribut3=valeur3
attribut4=valeur4 attribut5=valeur5>)
       <balise_ouvrante>
              <balise_ouvrante>
                     <info>toto</info>
J'ai bien essayé d'extraire le "morceau" du document XMl qui
m'interesse avec XMLExtraitDocument mais je dois pas etre au point sur
cette fonction.



si quelqu'un passe par là et à une bonne idée, je suis preneur ^^



utilisez XMLSuivant pour descendre dans l'arbo puis XMLParent pour
remonter

--
Cordialement JeAn-PhI



ouaip bien sur, mais avec cette méthode, il faut que le xml soit
toujours structuré pareil (balise dans le meme ordre)
c'est pour ca que j'aimerais eviter de faire comme ca.



XPath ??

--
Cordialement JeAn-PhI
Avatar
tjfromparis
j'ai trouvé une solution pour gerer en acces direct les balises du
paragraphe qui m'interesse

je recherche la clé qui me convient (avec ses 5 attributs)
si je la trouve, je duplique le document xml sur position en cours
je peux ensuite utiliser les xmlLit sans risque et surtout sans avoir
des chemins à rallonge dans les paramètres du xmlLit (donc sans
repeter cette clé à 5 attributs)
Avatar
JA
Pour un projet, j'ai utilisée une fonction récursive de ce type:

PROCEDURE fctLectureFils()

//Lecture de l'ensemble des fils du niveau actuel
SI XMLFilsExiste("DocXML") ALORS

XMLFils("DocXML")
XMLPremier("DocXML")
TANTQUE XMLEnDehors("DocXML") = Faux
// Traitements des données
Info("Fils2: "+XMLNomElément("DocXML")+" "+XMLDonnée("DocXML"))
fctLectureFils()
XMLSuivant("DocXML")
FIN
XMLParent("DocXML")
FIN

Si cela peut aider...
/JA
http://www.ja-psi.fr