Im travaillant avec PHP5, et je dois transformer XML sous la forme suivante:Transformer la structure XML à une autre structure xml
<item>
<string isNewLine="1" lineNumber="32">some text in new line</string>
<string>, more text</string>
<item>
<string isNewLine="1" lineNumber="33">some text in new line</string>
<string isNewLine="1" lineNumber="34">some text</string>
<string> in the same line</string>
<string isNewLine="1" lineNumber="35">some text in new line</string>
</item>
</item>
en quelque chose comme ceci:
<item>
<line lineNumber="32">some text in new line, more text</string>
<item>
<line lineNumber="33">some text in new line</string>
<line lineNumber="34">some text in the same line</string>
<line lineNumber="35">some text in new line</string>
</item>
</item>
Comme vous pouvez le voir, il a rejoint le texte contenu dans plusieurs nœuds 'chaîne'. Notez également que les nœuds «chaîne» peuvent être imbriqués dans d'autres nœuds à n'importe quel niveau.
Quelles sont les solutions possibles pour transformer le XML source en XML cible?
Merci,
Vérifiez les commentaires à la réponse acceptée, le code XSLT il y a toujours un bug. – Tomalak
Bonne question (+1). Voir ma réponse pour la seule solution correcte. La solution que vous avez acceptée n'est pas du tout correcte - exécutez-la simplement et comparez les résultats avec ce que vous voulez vraiment. –
'@ isNewLine' semble être redondant avec' @ lineNumber': si un 'string' a un' @ lineNumber', il a toujours '@ isNewLine' et l'inverse est vrai. – dolmen