Gambas France BETA


Pas de compte ? Incription

extraire une chaine de caracteres entre balises xml...

1
AuteurMessages
spheris#1 Posté le 29/1/2011 à 23:05:00
bonjour,
je dispose de 100 fichiers karaoké gratuits sous le format xml.
qui sont de ce type :

1
<PRINTxml version="1.0" encoding="UTF-8"PRINT><song> <title>bonbonlehiho</title> <author>comptine gitane</author> <copyright></copyright> <presentation></presentation> <ccli></ccli> <capo PRINT="false"></capo> <key></key> <aka></aka> <key_line></key_line> <user1></user1> <user2></user2> <user3></user3> <theme></theme> <tempo>rapide</tempo> <time_sig></time_sig> <lyrics>[V1] c'est la mere michelle qui a perdu son chatqui cri par la fenetre qui le lui rendra[C1]c'est le pere lustucruqui lui a repondu[V2]mais non la mere michelevous etes assis dessus[V3]bonbonlehihobonbonlehihata la la la la la la la hi la la</lyrics><hymn_number></hymn_number></song>


Je voudrais extraire le texte se situant entre les balises lyric et lyric barre.
Auriez-vous un moyen efficace ?
en GB2 tout naturellement :geek: :geek:
merci pour votre aide
;) ;)
Prokopy#2 Posté le 30/1/2011 à 00:23:00
Kinder PinguiSalut spheris,

As-tu pensé à utiliser gb.xml ?
D'abord, tu charges ton fichier avec XmlDocument.Open()

Ensuite tu accèdes au nœud "song" qui est le nœud racine via la propriété Root de XmlDocument, puis tu cherches dans ses enfants le nœud lyric dans une boucle.

Exemple :

1
DIM i AS IntegerXmlDocument.Open("bonbonlehiho.xml")FOR i=0 TO XmlDocument.Root.Children.Count - 1 IF XmlDocument.Root.Children[i].Name = "lyric" PRINT XmlDocument.Root.Children[i].Value BREAK EndifNext


Et hop. :)
La théorie, c'est quand on sait tout et que rien ne fonctionne.
La pratique, c'est quand ça marche mais qu'on ne sait pas pourquoi.
Quand la théorie rejoint la pratique, rien ne fonctionne et on ne sait pas pourquoi.
spheris#3 Posté le 31/1/2011 à 07:31:00
Excellent.
Merci prokopy
;) ;)
1