Salut à tous,
J'ai un fichier XML , j'aimerais savoir si une commande (ou un script) standard permet de faire:
Retour = Dans la valeur relative à la balise TOTO, change "truc_much" en "trik_much" ;
Retour = Dans la valeur relative à la balise TITI, change "23" en "**" ;
Retour = Dans la valeur relative à la balise TATA, change "pipo" en "geek" ;
le code retour contient l'information de ce qui a été réalisé:
exemple:
0: balise trouvée, valeur trouvée et changement réalisé
1: balise trouvée, valeur non trouvée
2: balise non trouvée
Je me demande si ça n'a pas déjà été inventé =) En plus, j'avoue que je préfère utiliser du standard (ou du déjà développé), plutôt que de développer un script. En effet, je suis pas expert dans ce domaine. En plus, le fait que les valeurs d'une balise peuvent être décrites sur plusieurs lignes, ça complexifie l'algo...
Bref, je suis ouvert à toutes vos remarques =)
Merci.
# XPath ou XSLT ?
Posté par Mouns (site web personnel) . Évalué à 1.
pour manipuler et donc interroger un fichier XML, il existe deux outils :
- XPath
- XSLT
XPath est une norme permettant de formuler des questions du genre "donne moi la liste des element toto qui descendent de tata et qui ont un attribut titi valant tutu".
XSLT est un langage permettant de transformer un XML en un autre XML ou document texte.
XSLT fait un usage intensif de XPath. les deux sont comme XML normalisé par le W3C.
Coté interface utilisateur, l'outil que je te recommande est libxml2 et libxslt avec xsltproc . C'est libre, gratuit et francais ;)
[^] # Re: XPath ou XSLT ?
Posté par debianowgus . Évalué à 1.
J'ai regardé sur le net, mais je n'ai pas encore trouvé la méthode pour m'en servir.
Tu n'aurais pas des exemples de commandes ?
En fait j'ai un fichier "toto.xml" contenant:
"<TOTO>1234567</TOTO><TRUC>pipo le
retour</TRUC><MACHIN>342</MACHIN>"
Je recherche la commande qui me permet de faire
change Balise=TRUC Valeur_avant="pipo le retour" Valeur_après="nouvelle valeur" toto.xml toto_new.xml
avec en résultat dans toto_new:
"<TOTO>1234567</TOTO><TRUC>nouvelle valeur
</TRUC><MACHIN>342</MACHIN>"
A défaut une commande qui force la valeur directement pour une balise serait déja nickel.
Suivre le flux des commentaires
Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.