PC SOFT

FORUMS PROFESSIONNELS
WINDEVWEBDEV et WINDEV Mobile

Accueil → WINDEV Mobile 2024 → [WM10] Fichier XML
[WM10] Fichier XML
Débuté par Nejm, 28 nov. 2006 09:44 - 1 réponse
Posté le 28 novembre 2006 - 09:44
bonjour,
si quelqu'un peut m'aider a me dire comment on peut parser un fichier XML avec WIndev Mobile 10 et récuperer les valeurs des balises.

merci d'avance
Posté le 30 novembre 2006 - 11:38
Voici un exemple. Je créé le fichier xml avec windev en web service

DocXML est une chaîne = "XML"
InfoXML est une chaîne // Chaîne résultat
sChaineansi est une chaîne

XMLDocument(DocXML,"") // Crée un document XML vierge

XMLAjouteFils(DocXML,"LISTESTOCK","",Vrai) // Elément Racine


POUR TOUT SOLID_STOCK AVEC "SOLID_ID >"+ n_id

XMLAjouteFils(DocXML,"STOCK","",Vrai)
XMLAjouteFils(DocXML,"NRPRODUIT",SOLID_STOCK.NRPRODUIT)
XMLAjouteFils(DocXML,"STOCK_REEL",NumériqueVersChaîne(SOLID_STOCK.STOCK_REEL))
XMLAjouteFils(DocXML,"STOCK_DISPMIN",NumériqueVersChaîne(SOLID_STOCK.STOCK_DISPIM))
XMLAjouteFils(DocXML,"STOCK_DISPATERM",NumériqueVersChaîne(SOLID_STOCK.STOCK_DISPATERM))
XMLAjouteFils(DocXML,"SOLID_ID",NumériqueVersChaîne(SOLID_STOCK.SOLID_ID))
// -----------
XMLParent(DocXML)

FIN

InfoXML = XMLConstruitChaîne(DocXML) // Récupère le XML construit
//fSauveTexte(fRepExe() + "\test.xml",infoxml)


sChaineansi = Crypte(InfoXML,"1234",crypteRapide+crypteAnsi,Vrai)
XMLTermine(DocXML) // Libère le document XML

RENVOYER sChaineansi



et je récupère le fichier du coté Pocket



ststock est une STSTCOL_SOLID_STOCK
tabListestock est un tableau de 0 STSTCOL_SOLID_STOCK

InfoXML est une chaîne

InfoXML = fChargeTexte(ComplèteRep(fRepExe())+"stock.xml")
XMLDocument("DocXML",InfoXML)
// on se positionne sur la racine
InfoXML = XMLConstruitChaîne("DocXML")

// Enregistrement du fichier XML
//fSauveTexte("ExampleModifié.xml",SourceXML)


XMLRacine("DocXML")
BOUCLE
// Recherche d'un "CLIENTS" dans les éléments
XMLRecherche("DocXML","STOCK",XMLElément+XMLSousElément+XMLContinue,XMLIgnoreLaCasse+XMLExact)
SI PAS XMLTrouve("DocXML") ALORS SORTIR
XMLFils("DocXML")
XMLPremier("DocXML")
TANTQUE PAS XMLEnDehors("DocXML")
SELON XMLNomElément("DocXML")
CAS "NRPRODUIT"
ststock:m_NRPRODUIT = XMLDonnée("DocXML")
CAS "STOCK_REEL"
ststock:m_STOCK_REEL = Val(XMLDonnée("DocXML"))
CAS "STOCK_DISPMIN"
ststock:m_STOCK_DISPIM = Val(XMLDonnée("DocXML"))
CAS "STOCK_DISPATERM"
ststock:m_STOCK_DISPATERM = Val(XMLDonnée("DocXML"))
CAS "SOLID_ID"
ststock:m_SOLID_ID = Val(XMLDonnée("DocXML"))
FIN
XMLSuivant("DocXML")
FIN
TableauAjoute(tabListestock,ststock)
XMLParent("DocXML")
FIN

POUR TOUT ELEMENT ststock DE tabListestock

HLitRecherchePremier(PRODUIT,NRPRODUIT,ststock:m_NRPRODUIT)
SI HTrouve(PRODUIT) ALORS

HLitRecherchePremier(SOLID_STOCK,NRPRODUIT,ststock:m_NRPRODUIT)
SI HTrouve(SOLID_STOCK) ALORS
SOLID_STOCK.STOCK_REEL = ststock:m_STOCK_REEL
SOLID_STOCK.STOCK_DISPIM = ststock:m_STOCK_DISPIM
SOLID_STOCK.STOCK_DISPATERM = ststock:m_STOCK_DISPATERM
SOLID_STOCK.SOLID_ID = ststock:m_SOLID_ID
HModifie(SOLID_STOCK)
SINON
SOLID_STOCK.NRPRODUIT = ststock:m_NRPRODUIT
SOLID_STOCK.STOCK_REEL = ststock:m_STOCK_REEL
SOLID_STOCK.STOCK_DISPIM = ststock:m_STOCK_DISPIM
SOLID_STOCK.STOCK_DISPATERM = ststock:m_STOCK_DISPATERM
SOLID_STOCK.SOLID_ID = ststock:m_SOLID_ID
HAjoute(SOLID_STOCK)
FIN
FIN
FIN
XMLTermine("DocXML")