2008-09-22 8 views
0

J'ai un fichier XML commeComment supprimer des éléments en double d'un fichier xml?

<ns0:Employees xmlns:ns0="http://TestIndexMap.Employees"> 
    <Employee FirstName="FirstName_0" LastName="LastName_1" dept="dept_2" empNumber="1"> 
    <Schedules> 
     <Schedule Date_join="2008-01-20" Date_end="2008-01-30" /> 
    </Schedules> 
    </Employee> 
    <Employee FirstName="FirstName_0" LastName="LastName_1" dept="dept_2" empNumber="2"> 
    <Schedules> 
     <Schedule Date_join="2008-01-20" Date_end="2008-01-30" /> 
    </Schedules> 
    </Employee> 
    <Employee FirstName="FirstName_2" LastName="LastName_1" dept="dept_2" empNumber="2"> 
    <Schedules> 
     <Schedule Date_join="2007-01-21" Date_end="2007-12-30" /> 

    </Schedules> 
    </Employee> 
    <Employee FirstName="FirstName_2" LastName="LastName_1" dept="dept_2" empNumber="2"> 
    <Schedules> 
     <Schedule Date_join="2007-01-21" Date_end="2007-12-30" /> 
     <Schedule Date_join="2008-06-20" Date_end="2008-01-30" /> 

    </Schedules> 
    </Employee> 
</ns0:Employees> 

Je voudrais supprimer les doublons en fonction de la fistname, nom et date_join et DATA_END.

S'il vous plaît, quelqu'un peut-il expliquer comment réaliser ceci avec XSLT?

+0

S'il vous plaît fournir la structure de votre fichier XML :) – Swati

+0

S'il vous plaît retirer les bouchons de votre titre –

+0

Quelles langues privilégiez-vous? – Xian

Répondre

4

Voici quelques exemples de how to remove duplicates based on element name and id field. Il ne devrait pas être trop difficile d'étendre cela à des champs arbitraires.

Q: Expansion. Une partie de mon xml ressemble comme ceci:

<location> 
    <state>xxxx</state> 
</location> 

<location> 
    <state>yyyy</state> 
</location> 

    <location> 
    <state>xxxx</state> 
</location> 

La sortie désirée est:

xxxx 
yyyy 

C'est, les valeurs en double de l'Etat ne doivent pas être imprimés. Est-ce que cela peut être fait?

<xsl:variable name="unique-list" 
    select="//state[not(.=following::state)]" /> 

    <xsl:for-each select="$unique-list"> 
<xsl:value-of select="." /> 
    </xsl:for-each> 
+0

Merci pour le conseil. mon cas premier pas Si le prénom et le nom de famille correspondent, je devrais fusionner les plannings avec les mêmes plannings de matage et dans l'étape suivante, supprimer tous les doublons dans le noeud de planning basé sur le premier nom, date_joint, date_endue. –

Questions connexes