Bonjour,
je reviens vers vous pour un souci de transformation.
j'ai des données xml qui ne sont pas toutes bien remplies (c'est pas bien), je souhaite donner un dormat spécifique à celle qui correspondent à mon critèer et laisser les autres telles quelles sont avec pourquoi pas un nom d'attribut "erreur", ùmais je n'y parviens pas et pourtant ça semble tout bête.
Les données correctes sont sous ce format:
il y en a qui sont mal remplies:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 <extent>1:50.000</extent> <extent>1:1.000.000</extent>
moi je veux obtenir pour les bien remplies ceci:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 <extent> échelle graphique</extent> <extent></extent>
et pour toutes les autres:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 <extent ext="50.000"/> <extent ext="1.000.000"/>
je comptais sur la fonction analize-string mais je n'obtient pas ce que je veux
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 <extent erreur="échelle graphique"/> <extent erreur=""25.000""/>
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
20 <xsl:template match="ns:binding[@name='extent']"> <xsl:for-each select="current()"> <xsl:analyze-string select="." regex="(.*):(.*)"> <xsl:matching-substring> <extent> <xsl:attribute name="ext"> <xsl:value-of select="regex-group(2)"/> </xsl:attribute> </extent> </xsl:matching-substring> <xsl:non-matching-substring> <extent> <xsl:attribute name="erreur"> <xsl:value-of select="."/> </xsl:attribute> </extent> </xsl:non-matching-substring> </xsl:analyze-string> </xsl:for-each> </xsl:template>
pourriez-vous me dire où je rate un truc? a priori c'est dans mon regex mais je patauge un peu.
Merci pour votre aide précieuse.
Partager