Avatar billede bhn.314 Nybegynder
01. februar 2005 - 15:14 Der er 4 kommentarer og
1 løsning

Tælle elemter med bestemt værdi

JEg har et problem når jeg henter 2 xml-sæt og merger det til ét. Problemet er at jeg gerne vil tælle hvor mange af en hvis type der er i top 5. Jeg kan ikke gøre dette i databaserne da der er 2 DB'er.

De 2 xml-sæt ser således ud:
<east>
  <name></name>
  <type></type>
</east>

<west>
  <name></name>
  <type></type>
</west>

Og noget xsl der ser sådan ud som kun tager de 5 først af de samlede east og west:

<xsl:for-each select="/DOCUMENT/east | /DOCUMENT/west">
<xsl:if test="(5>position())">
  <xsl:if test="type='east'">
      Tæl 1 op
  </xsl:if>
  <xsl:value-of select="name"/>
</xsl:if>
</xsl:for-each>

<xsl:text>Antal type east:<xsl:value-of select="????????"/></xsl:text>
Avatar billede softspot Forsker
01. februar 2005 - 23:37 #1
Jeg vil umiddelbart tro at din liste altid vil indholde alle det antal (op til 5) der er i /DOCUMENT/east, da der ikke er nogen form for sortering på dit for-each loop (den gennemløber sættene i den rækkefølge de er angivet i select-attributten).

Hvis nu du havde en sortering på så ville din merge givetvis medføre at elementerne blev blandet imellem hinanden...

Anyway! Jeg ville umiddelbart gribe optællingen an på en anden måde (da man ikke kan opdatere variable i XSLT), nemlig ved at tælle via rekursion! Det er lidt mere kompliceret (og det er ved at blive sent), men overvej lige om du kan finde ud af det selv, ellers skal jeg gerne bruge lidt tid på det imorgen aften - hvis du ellers kan vente så længe og der ikke er andre som har en bedre idé eller kan give dig et bud inden da. Sorry, men jeg skal snart op igen... :(
Avatar billede atoft Nybegynder
02. februar 2005 - 09:37 #2
Jo men hvis der er 5 elementer i dit east vil du jo altid få fat i dem først.

Er det det du vil?
Avatar billede bhn.314 Nybegynder
02. februar 2005 - 10:02 #3
Til begge>> Der mangler selvfølgelig en sort jeg bruger:

<xsl:sort select="person_firstname" order="ascending"/>
Avatar billede bhn.314 Nybegynder
02. februar 2005 - 10:03 #4
....arhhh:

<xsl:sort select="name" order="ascending"/>

...Selvfølgelig
Avatar billede bhn.314 Nybegynder
04. april 2005 - 10:45 #5
Lukker
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester