2017-08-07 3 views
0

Est-ce possible de supprimer le numéro de série h # en utilisant le XSLje supprimer tous les tags de la série <h#> utilisant modèle unique

XML d'entrée en utilisant comme:

<table> 
    <tbody> 
     <tr> 
     <td> 
      <h2> 
      <img src="https://admin.com" /> 
      </h2> 
     </td> 
     <td> 
      <h3> 
      <img src="https://admin.com" /> 
      </h3> 
     </td> 
     <td> 
      <h4> 
      <img src="https://admin.com" /> 
      </h4> 
     </td> 
     </tr> 
    </tbody> 
    </table> 

XSL je comme:

<xsl:template match="table/tbody/tr/td/h2[img]"> 
    <xsl:apply-templates/> 
</xsl:template> 

<xsl:template match="table/tbody/tr/td/h3[img]"> 
    <xsl:apply-templates/> 
</xsl:template> 

<xsl:template match="table/tbody/tr/td/h4[img]"> 
    <xsl:apply-templates/> 
</xsl:template> 

Comme dans toutes les entrées, le lot de h # sera possible dans la table. Est-il possible d'écrire le modèle unique pour supprimer toutes les séries h1 h2 h3 ....... h de la table?

Répondre

1

Vous pouvez utiliser plusieurs pattern dans le modèle d'échantillon, par ex. <xsl:template match="table/tbody/tr/td/h2[img] | table/tbody/tr/td/h3[img] | table/tbody/tr/td/h4[img]"><xsl:apply-templates/></xsl:template>.

Je ne suggère d'utiliser une expression régulière, si vous voulez raccourcir le modèle alors peut-être faire

<xsl:template match="table/tbody/tr/td/*[(self::h1 | self::h2 | self::h3 | self::h4 | self::h5 | self::h6) and img]"> 
    <xsl:apply-templates/> 
</xsl:template> 
+0

Salut @ Martin. Merci. Est-ce possible d'utiliser n'importe quelle expression régulière pour les numéros de série h à supprimer. Veuillez suggérer?? – User501

+0

Je ne suis pas sûr d'utiliser une expression régulière dans un motif pour correspondre à des noms d'éléments différents est une bonne idée, vous pouvez bien sûr essayer, par exemple. '* [correspond (nom(), '^ h (1 | 2 | 3 | 4 | 5 | 6) $')]' mais pour plus de clarté et d'efficacité, il peut être préférable d'épeler les noms des éléments dans une étape d'un modèle. –

+0

Merci à @Martin. Cela fonctionne bien. – User501