Frage

Ich habe eine XML-Datei wie

<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>

Ich mag die Duplikate auf der fistname, Nachnamen und date_join und data_end Basis entfernen.

Bitte, kann jemand erklären, wie dies mit XSLT achive?

War es hilfreich?

Lösung

Hier sind einige Beispiele von wie Duplikate zu entfernen, basierend auf Elementnamen und ID-Feld . Es sollte nicht zu hart sein, um beliebige Felder zu erweitern.

  

Q: Expansion. Ein Teil meines xml Aussehen   wie folgt aus:

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

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

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

Die gewünschte Ausgabe ist:

xxxx
yyyy
  

Das heißt, doppelte Werte von Staat sollte nicht gedruckt werden.   Kann dies geschehen?

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

   <xsl:for-each select="$unique-list">
 <xsl:value-of select="." />
   </xsl:for-each>
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top