[XSL] child waarden uitlezen

Pagina: 1
Acties:

  • jsiegmund
  • Registratie: Januari 2002
  • Laatst online: 11:39
Het zal vast wel eens voorbij gekomen zijn, maar ik kon het niet vinden helaas.

Ik heb een XML node, zeg X die een n-aantal child-nodes heeft, waarvan ik de naam niet weet. Nu wil ik van elk van die nodes hun naam + waarde afdrukken.

Het moet dus zoiets worden als:

code:
1
2
3
4
5
<xsl:template match="X">
  <xsl:for-each select="./child">
    <xsl:call-template name="printout"/>
  </xsl:for-each>
</xsl:template>


Okay, sloppy voorbeeld; maar het idee is duidelijk lijkt me, welke functie moet je daarvoor hebben?

[ Voor 9% gewijzigd door jsiegmund op 17-11-2004 10:59 ]


  • jsiegmund
  • Registratie: Januari 2002
  • Laatst online: 11:39
Ik zou overigens wel de XML output kunnen veranderen, zodat het iets wordt in de vorm:
code:
1
2
3
<X>
  <item name="bla">test<item>
</X>

Met als groot voordeel dat je de nodenaam weet, maar ik vraag me af of dat een nette oplossing is? Eigenlijk is het niet de bedoeling dat je je XML zo opmaakt lijkt me, iedere node zou toch een redelijk logische, van de content afhangende naam moeten hebben?

[ Voor 7% gewijzigd door jsiegmund op 17-11-2004 11:03 ]


  • Michali
  • Registratie: Juli 2002
  • Laatst online: 22-03 18:12
code:
1
2
3
4
5
6
7
<xsl:template match="X">
    <xsl:apply-templates select="descendant::*"/>
</xsl:template>

<xsl:template match="X/descendant::*">
    <xsl:value-of select="name(.)"/> heeft de waarde <xsl:value-of select="."/>
</xsl:template>


Zoiets of zie ik het verkeerd?

[ Voor 107% gewijzigd door Michali op 17-11-2004 11:26 ]

Noushka's Magnificent Dream | Unity


Verwijderd

Voor dit soort dingen bestaan whitepapers, die van XPath is te vinden op de site van W3C.

De functie die je zoekt is local-name().