• # Toujours pas...

    Posté par . En réponse au message XSL : filtre sur les petits fils. Évalué à 1.

    Merci pour ces nouvelles suggestions. En effet en XSL 2.0 on peut grouper les sélecteurs comme tu le suggères. J'ai donc pu simplifier mon fichier comme suit :
    [xsl:stylesheet version="2.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"]
    [xsl:output method="xml" indent="yes"/]
    [xsl:strip-space elements="*"/]
    [xsl:template match="/"]
     [xsl:element name="A" namespace="http://www.w3.org/2001/XMLSchema-instance"]
     [xsl:for-each select="(/A/B1 | /A/B2[C4/D2=0])"]
     [xsl:copy-of select="."/]
     [/xsl:for-each]
     [/xsl:element]
    [/xsl:template]
    [/xsl:stylesheet]
    
    Le problème est que même lorsque je force le ns dans A avec
    namespace="http://www.w3.org/2001/XMLSchema-instance" 
    je me retrouve avec un ns pour A et des ns sur les B1et les B2. Il semble que le moteur ne teste pas l'égalité entre ces ns :'o( Je vais finir par croire que je n'ai pas d'autre choix que de me taper tous les tags à la main en template (ce sont les copy-of qui introduisent les namespaces).