2013-02-26 4 views
0

Je:comment filtrer dans xslt

<ExtData> 
<table> 
    <Column biz="Bus" desc="" id="Bus" > 
     <CoreColumn coreEntityName="ser" coreId="Bus" coreColumnDataType="TypeInt" coreColumnLength=""/> 
    </Column> 
    <Column biz="ser" desc="" id="NAME" > 
     <CoreColumn coreEntityName="ser" coreId="NAME" coreColumnDataType="TypeVarChar" /> 
    </Column> 
    <Column biz="ID" desc="" id="GLOBAL_ID" > 
     <CoreColumn coreEntityName="ser" coreId="UCMDB_ID" coreColumnDataType="VarChar" /> 
     <CoreColumn coreEntityName="ser_xxx" coreId="UCMDB_ID" coreColumnDataType="VarChar" /> 
    </Column> 
    <Column biz="State" desc="" id="ser_STATE" > 
     <CoreColumn coreEntityName="ser" coreId="ser_STATE" coreColumnDataType="VarChar" /> 
    </Column> 
</table> 

et besoin d'une sortie >>> filtrée par atribute @coreEntityName="ser":

<ExtData> 
<table> 
    <Column biz="Bus" desc="" id="Bus" > 
     <CoreColumn coreEntityName="ser" coreId="Bus" coreColumnDataType="TypeInt" coreColumnLength=""/> 
    </Column> 
    <Column biz="ser" desc="" id="NAME" > 
     <CoreColumn coreEntityName="ser" coreId="NAME" coreColumnDataType="TypeVarChar" /> 
    </Column> 
    <Column biz="ID" desc="" id="GLOBAL_ID" > 
     <CoreColumn coreEntityName="ser" coreId="UCMDB_ID" coreColumnDataType="VarChar" /> 
    </Column> 
    <Column biz="State" desc="" id="ser_STATE" > 
     <CoreColumn coreEntityName="ser" coreId="ser_STATE" coreColumnDataType="VarChar" /> 
    </Column> 
</table> 

+0

À quoi ressemble votre XSL et quel est le problème avec la transformation? –

Répondre

3

La feuille de style XSLT suivant la réalisation sortie désirée:

<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0"> 
    <xsl:output method="xml" encoding="UTF-8" indent="yes"/> 

    <!-- Identity template : copy attributes and elements by default --> 
    <xsl:template match="@*|*"> 
     <xsl:copy> 
      <xsl:apply-templates select="@*|*" /> 
     </xsl:copy> 
    </xsl:template> 

    <!-- Exclude all the CoreColumn elements such as their @coreEntityname 
     attribute is other than ser --> 
    <xsl:template match="CoreColumn[@coreEntityName != 'ser']" /> 

</xsl:stylesheet> 
+0

merci Pablo !!! – Vikonto

+0

À la votre! Heureux que je pourrais aider :) –

+0

Salut Pablo. c'est du travail, mais pourquoi correspondre = "CoreColumn [@coreEntityName! = 'ser']" (pas égal) et ne correspond pas = "CoreColumn [@coreEntityName = 'ser']" (égal) – Vikonto