2016-07-29 17 views
0

Ich habe die XML wie folgt kommen.So geben Sie nur wenige Knoten aus

<Result> 
    <customer> 
     <id>123</id> 
     <lastName>John1</lastName> 
     <firstName>Doe1</firstName> 
     <phone>1234578900</phone> 
    </customer> 
    <customer> 
     <id>456</id> 
     <lastName>John2</lastName> 
     <firstName>Doe2</firstName> 
     <phone>1234587900</phone> 
    </customer> 
    <customer> 
     <id>789</id> 
     <lastName>John3</lastName> 
     <firstName>Doe3</firstName> 
     <phone>1234467900</phone> 
    </customer> 
    <customer> 
     <id>012</id> 
     <lastName>John4</lastName> 
     <firstName>Doe4</firstName> 
     <phone>1236567900</phone> 
    </customer> 
    <customer> 
     <id>235</id> 
     <lastName>John5</lastName> 
     <firstName>Doe5</firstName> 
     <phone>1232567900</phone> 
    </customer> 
    <customer> 
     <id>568</id> 
     <lastName>John6</lastName> 
     <firstName>Doe6</firstName> 
     <phone>1237567900</phone> 
    </customer> 
</Result> 

Ich muss nur 5 Kundenergebnisse ausgeben. Wenn die Anfrage weniger als 5 Kunden hat, dann muss ich alle ausgeben. aber wenn die Anfrage mehr als 5 hat, muss ich nur 5 Ergebnisse ausgeben. Wie dies zu erreichen, mit Sheet

Ausgang:

<Result> 
    <customer> 
     <id>123</id> 
     <lastName>John1</lastName> 
    </customer> 
    <customer> 
     <id>456</id> 
     <lastName>John2</lastName> 
    </customer> 
    <customer> 
     <id>789</id> 
     <lastName>John3</lastName> 
    </customer> 
    <customer> 
     <id>012</id> 
     <lastName>John4</lastName> 
    </customer> 
    <customer> 
     <id>235</id> 
     <lastName>John5</lastName> 
    </customer> 
</Result> 

Antwort

1

Das ist ziemlich trivial:

XSLT 1,0

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

<xsl:template match="/Result"> 
    <xsl:copy> 
     <xsl:for-each select="customer[position() &lt;= 5]"> 
      <xsl:copy> 
       <xsl:copy-of select="id | lastName"/> 
      </xsl:copy> 
     </xsl:for-each> 
    </xsl:copy> 
</xsl:template> 

</xsl:stylesheet> 
+0

Wie nur zwei vorgesehene Elemente ID setzen, nachName – mnvbrtn

+0

Vielen Dank. Ich habe noch eine Frage, sagen wir, dass in der ID der Anfrage ein paar Buchstaben stehen. Welche Bedingung muss ich setzen, um nach der Nummer zu suchen und die Top 5 Kunden auszudrucken, deren ID eine Nummer ist. Ich probierte drinnen für-jedes, was nicht die Top 5 gibt. – mnvbrtn

+0

Ich schlage vor, Sie fragen dies in einer neuen Frage. –

Verwandte Themen