Bonjour,
Je suis confronté à un problème que je ne parviens pas encore à résoudre.
Voilà, j'ai un XML comme ceci :
La balise <data> peut contenir soit un sous arbre XML, soit du texte formaté.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14 <?xml version="1.0" encoding="UTF-8"?> <racine xmlns="uri1" xmlns:xsi="uri2"> <aaa> <bbb>BBBBB</bbb> </aaa> <ccc> <ddd>DDDDD</ddd> </ccc> <ddd> <data> ... </data> </ddd> </racine>
Mon premier problème consiste à extraire le contenu de cette balise <data>.
Mon second, à ajouter ou non la déclaration <?xml?> dans le résultat selon que son contenu soit du XML ou du texte.
Voici les 2 fichiers XML:
et
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16 <?xml version="1.0" encoding="UTF-8"?> <racine xmlns="uri1" xmlns:xsi="uri2"> <aaa> <bbb>BBBBB</bbb> </aaa> <ccc> <ddd>DDDDD</ddd> </ccc> <ddd> <data> ligne11111111111111111111111 ligne22222222222222222222222 ligne33333333333333333333333 </data> </ddd> </racine>
Et mon script XSLT qui ne fonctionne que dans le cas texte, et encore !
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 <?xml version="1.0" encoding="UTF-8"?> <racine xmlns="uri1" xmlns:xsi="uri2"> <aaa> <bbb>BBBBB</bbb> </aaa> <ccc> <ddd>DDDDD</ddd> </ccc> <ddd> <data> <ppp xmlns="uri3"> <sss> <qqq>QQQQQQQQ</qqq> <rrr>RRRRRRRR</rrr> </sss> </ppp> </data> </ddd> </racine>
Car il me laisse des espaces au début !!!!!
Et aussi ne fonctionne pas si <data> contient du XML.
comme on le voit ici:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11 <?xml version="1.0" encoding="UTF-8"?> <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0" xmlns:x="uri1"> <xsl:output method="text" omit-xml-declaration="yes" encoding="utf-8" /> <xsl:strip-space elements="*" /> <xsl:template match="/"> <xsl:apply-templates select="/x:racine/x:ddd/x:data" /> </xsl:template> <xsl:template match="*"> <xsl:copy-of select="." /> </xsl:template> </xsl:stylesheet>
Merci pour votre aide.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 ligne11111111111111111111111 ligne22222222222222222222222 ligne33333333333333333333333
Partager