27. september 2007 - 19:20
Der er
8 kommentarer og 1 løsning
Visning af children med den samme parent
Hej, Jeg har loopet mig ned i xml'en og fundet det child, som jeg skal bruge - nu skal jeg så bare have vist de childrens, som ligger i den allerede fundet parent. Hvordan? (Kan _sikkert_ laves bedre) <xsl:template match="/navigation"> <xsl:apply-templates select="page"> <xsl:with-param name="depth" select="1"/> </xsl:apply-templates> </xsl:template> <xsl:template match="page"> <xsl:param name="depth"/> <xsl:if test="@active='true'"> <xsl:value-of select="@name" disable-output-escaping="yes"/> <!-- Her er den kendte child - hvad med resten ? --> </xsl:if> <xsl:if test="count(page)"> <xsl:apply-templates select="page"> <xsl:with-param name="depth" select="$depth+1"/> </xsl:apply-templates> </xsl:if> </xsl:template>
Annonceindlæg tema
Cloud & AI
I dette særtema ser vi på, hvordan cloud og AI bliver fundamentet for virksomhedernes digitale forretning, og hvordan de nye muligheder for automatisering og forretningsværdi kan udnyttes uden at miste overblik, sikkerhed og menneskelig kontrol.
28. september 2007 - 11:59
#1
Det er lettere å forstå hvis du kommer med et (lite!) eksempel på en av XML-filene dine. Og litt prosa som beskriver hvilke noder du snakker om. Et eller annet med preceding-sibling:: ?
28. september 2007 - 12:36
#2
Min xml er lidt sparsom og jeg har ikke mulighed for at tilføje ekstra: <navigation> <page active='false' name='side 1' /> <page active='false' name='side 2' /> <page active='false' name='side 3'> <page active='false' name='side 6' /> <page active='false' name='side 7' /> <page active='true' name='side 8' /> <page active='false' name='side 9' /> </page> <page active='false' name='side 4' /> <page active='false' name='side 5' /> </navigation> Skal returne : "side 6 side 7 side 8 side 9"
28. september 2007 - 13:36
#3
...og det skal den gjøre fordi side 8 har active="true", right?
28. september 2007 - 13:40
#4
korrekt
28. september 2007 - 21:34
#5
Noget i denne stil? <xsl:template match="/navigation"> <xsl:apply-templates select="page"> <xsl:with-param name="depth" select="1"/> </xsl:apply-templates> </xsl:template> <xsl:template match="page"> <xsl:param name="depth"/> <xsl:if test="@active='true'"> <!-- Her er den kendte child --> <xsl:value-of select="@name"/> <!-- Her dens søskene --> <xsl:for-each select="../page"> <siblings> <xsl:value-of select="@name"/> </siblings> </xsl:for-each> </xsl:if> <xsl:if test="count(page)"> <xsl:apply-templates select="page"> <xsl:with-param name="depth" select="$depth+1"/> </xsl:apply-templates> </xsl:if> </xsl:template>
29. september 2007 - 00:32
#6
Super flot :) I skal begge have tak - læg et svar.
29. september 2007 - 07:35
#7
Svar :^)
29. september 2007 - 21:33
#8
Nu ved jeg ikke om du skal bruge nogen af de andre oplysninger du samler ind undervejs, men ellers kan det ogsåklares på denne måde: <xsl:template match="/"> <xsl:for-each select="//page[@active='true']/../page"> <siblings> <xsl:value-of select="@name"/> </siblings> </xsl:for-each> </xsl:template>
30. september 2007 - 21:18
#9
Lukker
Kurser inden for grundlæggende programmering