15. maj 2002 - 14:29
Der er
8 kommentarer og 1 løsning
forskellige img på bladnoder og noder med underniveau
Hejsa Jeg vil godt kunne sætte noder med underniveauer til plus minus.gif og bladnoder til prik.gif? <xsl:template match="Subject"> <xsl:param name="parentid"></xsl:param> <div> <xsl:attribute name="id">div<xsl:value-of select="$parentid"/>_<xsl:value-of select="Name/text()"/></xsl:attribute> <xsl:apply-templates select="Name"> <xsl:with-param name="parentid"><xsl:value-of select="$parentid"/>_<xsl:value-of select="Name/text()"/></xsl:with-param> </xsl:apply-templates> <div class="hidden"> <xsl:attribute name="id">sub<xsl:value-of select="$parentid"/>_<xsl:value-of select="Name/text()"/></xsl:attribute> <xsl:apply-templates select="Subject"> <xsl:with-param name="parentid"><xsl:value-of select="$parentid"/>_<xsl:value-of select="Name/text()"/></xsl:with-param> </xsl:apply-templates> </div> </div> </xsl:template> <xsl:template match="Name"> <xsl:param name="parentid"></xsl:param> <xsl:choose> <xsl:when test="position()!=last()"> <img src="images/plus.gif" alt=""> <xsl:attribute name="id">img<xsl:value-of select="$parentid"/></xsl:attribute> <xsl:attribute name="onclick">iconClick '<xsl:value-of select="$parentid"/>'</xsl:attribute> </img> </xsl:when> <xsl:otherwise> <img src="images/prik.gif" alt=""> <xsl:attribute name="id">imgTest</xsl:attribute> </img> </xsl:otherwise> </xsl:choose> <input> <xsl:attribute name="type">checkbox</xsl:attribute> <xsl:attribute name="id">chk<xsl:value-of select="$parentid"/></xsl:attribute> <xsl:attribute name="value">1</xsl:attribute> <xsl:if test="Value=1"> <xsl:attribute name="checked">1</xsl:attribute> </xsl:if> </input> <xsl:value-of select="text()" disable-output-escaping="yes"/> </xsl:template> </xsl:stylesheet> <Taksonomi> <Subject> <Name>Brancher</Name> <Subject> <Name>Energi</Name> </Subject> <Subject> <Name>Handel</Name> </Subject>...
Annonceindlæg tema
Forsvar & beredskab
Cybersikkerhed, realtidsdata og robuste it-systemer er blevet fundamentet for moderne forsvar.
Koden din ser da umiddelbart fornuftig ut? Du tester på position()=last() for å finne bladnoder, virker det ikke?
Nej ummiddelbart er problemet at det er den eneste node, så den vil altid være den sidste, alt andet end position()=1 giver false.
Ja, selvsagt, for den etterfølgende Subject er slett ikke med i det node-set du har selected. test="following-sibling::Subject" ? Eller kanskje to templates for Name, med select på henholdsvis name[following-sibling::Subject] og name[not(following-sibling::Subject)] ?
Er det muligt at teste på om der ligger andre noder på samme niveau istedet? name er den eneste node hvis det er en bladnode <Subject> <Name>Energi</Name> </Subject> ellers vil det også være subject noder <Subject> <Name>Brancher</Name> <Subject> <Name>Energi</Name> </Subject>
øh, jeg mener at [following-sibling::Subject] nettopp er en test på om det ligger Subject-noder på samme nivå som den Name-noden vi tester fra? Eventuelt [following-sibling::*] for å fange opp andre søsken enn Subject'er?
Jeg oppdager ikke om det finnes andre søsken FORAN Name, men det gjør det vel ikke? evt [not(parent::Subject/[Subject)] [not(parent::*/
[not(Subject)])] ?
oops, en skrå for mye? [not(parent::Subject[Subject)] [not(parent::*[*][not(Subject)])]
test="following-sibling::Subject" virker (08 tak for hjælpen. hvor kan man fin eksempler osv. på following-sibling::, parent:: ... det er ikke meget jeg har kunnet finde.?
nei, mye er det ikke. Det står 3 sider om location paths i "The XSL Companion" (av Neil Bradley, isbn 0-201-67487-4). God bok (kjøpte den på anbefaling her på eksperten.dk), drøyt halvparten er om XSLT, resten om formatting objects o.l.
Kurser inden for grundlæggende programmering