- Ymox,
Bonjour à tous !
Aujourd'hui, c'est un souci de compréhension de SimpleXMLElement qui me pousse à créer un sujet.
J'ai un fichier XML de structure similaire à ceci.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 | <root> <informations source="…" cible="…"> <transformations> <lgsource lg="54231" /> <insertions> … </insertions> <suppressions> … </suppressions> … </transformations> </informations> <informations source="…" cible="…"> <transformations> … </transformations> </informations> … </root> |
Ce fichier représente des jeux de comparaisons entre différentes versions de fichiers texte. L'idée est qu'un fichier XML regroupe plusieurs jeux de comparaisons, mais que je ne traite que ceux que l'utilisateur choisit parmi ceux disponibles.
Dans l'idée de pouvoir simplifier mon code, j'aimerais donc créer une variable qui ne contiendrait qu'une balise <informations>
, et celle-ci selon sa position. Pour cela, j'imaginais faire quelque chose comme $comparison = &$xml->informations[$versionPosition]
, mais il y a apparemment quelques subtilités qui m'échappent.
Dans un premier temps, il semble impossible d'accéder à un élément d'une collection selon une position "variable" : si je mets un nombre directement dans les crochets, je récupère bien mes informations (et celles de la bonne position), mais la variable ne semble pas passer — elle contient bien un nombre pourtant. Bon, à la limite, je peux bricoler un XPath avec les attributs, mais n'y aurait-il pas une possibilité plus simple ?
Merci d'avance