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 fra Visma Enterprise
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 - 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 - 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>