Subject: [xsl] Comma delimited parameters... From: "Casadome, Francisco Javier" <Francisco.Casadome@xxxxxxxxxxxxxx> Date: Tue, 18 Sep 2001 16:11:17 +0200 |
Hi all, I have an XSL receiving parameter that is a list of names separated by commas, like this: name1,name2,name3,name4,name5,name6, (note that the last one also have a comma at the end) Then I have a XML file with nodes that may or may not have these names as childs, like this: <myXML> <node1> <name1>XXX</name1> <name3>CCC</name3> </node1> <node2/> <node3> <name3>AAA</name3> <name6>QQQ</name6> </node3> </myXML> What I want to do is to create a TAB-separated file with all the names in the parameter as the first line, like this: ----------------------------------- name1 name2 name3 name4 name5 name6 ----------------------------------- XXX CCC AAA QQQ ----------------------------------- This is the XSL I have right now: <?xml version="1.0" encoding="UTF-8"?> <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> <xsl:output method="text" omit-xml-declaration="yes" indent="no"/> <xsl:param name="Fields"/> <xsl:key name="AllPossibleFields" match="Entry/*" use="name()"/> <xsl:template match="Entries"> <xsl:apply-templates select="Entry/*[count(. | key('AllPossibleFields',name())[1]) = 1]"/> <xsl:text>
</xsl:text> <xsl:for-each select="Entry"> <xsl:for-each select="*"> <xsl:if test="contains($Fields,concat(name(),','))"> <xsl:value-of select="."/><xsl:text>	</xsl:text> </xsl:if> </xsl:for-each> <xsl:text>
</xsl:text> </xsl:for-each> </xsl:template> <xsl:template match="*"> <xsl:if test="contains($Fields,concat(name(),','))"> <xsl:value-of select="name()"/><xsl:text>	</xsl:text> </xsl:if> </xsl:template> </xsl:stylesheet> Here you can see that what I do is to check if the current node plus a comma is in the parameter list using the contains() function. I do this because I don't know how to split this string without using an embed VBScript. Also, I don't get name2, name4 and name5 in the header row, because there isn't any node with such childs. Any great ideas ? Thanks in advance, Frank. XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
Current Thread |
---|
|
<- Previous | Index | Next -> |
---|---|---|
Re: [xsl] How to get table format i, Perry Molendijk | Thread | RE: [xsl] Comma delimited parameter, Michael Kay |
Re: [xsl] How to get table format i, Perry Molendijk | Date | [xsl] Is this a valid expression?, Christian Cäsar |
Month |