2016-05-27 8 views
-1

Input:XSLT, die zwei Knoten verbindet und entfernt die doppelten Werte

<data> 

     <root> 
     <name>A</name> 
     <name>B</name> 
     </root> 

     <root> 
     <name>C</name> 
     <name>D</name> 
     <name>A</name> 
     </root> 

    </data> 

Output:

<data> 
     <root> 
     <name>A</name> 
     <name>B</name> 
     <name>C</name> 
     <name>D</name> 
     </root> 
</data> 

Benutzer gibt Daten in Namenselement von zwei verschiedenen Knoten. Also ich möchte eine XSLT, die zwei Knoten kombiniert und die doppelten Werte entfernt. Ich habe es versucht, aber es funktioniert nicht. Bitte hilf mir.

+2

Können Sie Ihre Frage bearbeiten, um die XSLT Sie versucht haben, zu zeigen, auch wenn es nicht funktioniert. Vielen Dank! –

+0

Sehen Sie, ob http://stackoverflow.com/questions/6768387/removing-duplicates-in-xml-with-xslt Ihnen hilft – kjhughes

+0

Jedes Problem, das das Entfernen von Duplikaten beinhaltet, wird in XSLT 1.0 und 2.0 eine ganz andere Lösung haben. Da beide Versionen sehr weit verbreitet sind, müssen Sie wirklich sagen, welche Sie verwenden. (Und die 2.0 Lösung wird viel einfacher sein, also benutze 2.0 wenn du kannst.) –

Antwort

0

In XSLT 2.0 ist es einfach

<xsl:for-each-group select="/data/root/name" group-by="."> 
    <xsl:copy-of select="current-group()[1]"/> 
</xsl:for-each-group> 
+0

Es funktioniert nicht. Können Sie eine andere Lösung vorschlagen? –

+1

Ist das Ihr normaler Ansatz zur Problemlösung? Wenn es nicht funktioniert, versuchen Sie etwas anderes? Wenn ja, müssen Sie Ihren Ansatz überdenken. Wenn etwas nicht funktioniert, müssen Sie herausfinden, warum, und der erste Schritt dabei ist, die Symptome des Fehlers zu untersuchen: Wenn Sie sagen "es funktioniert nicht", wie genau schlägt es fehl? –

Verwandte Themen