Subject: [xsl] Generating IDs and seperating elements From: Jinesh Varia <jineshresearch@xxxxxxxxx> Date: Wed, 5 Feb 2003 17:20:36 -0800 (PST) |
Hello people, two unique problems: My XML is <publication pubid="0002"> <author>steve lawer</author> ........ <publication> I want my new XML as: <publication pubid="0002"> ........ </publication> <person perid="100000004"> <!-- new id generation --> <personname>steve lawer</personname> </person> <pubper> <!-- publication-person intersection --> <pubid>0002</pubid> <perid>100000004</perid> </pubper> My XSL is: <?xml version="1.0"?> <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> <xsl:output method="xml" indent="yes"/> <xsl:template match="publication"> <publication> <xsl:copy-of select="@*|*[not(self::author or self::editor)]"/> <!-- this is just to cut the authors element--> </publication> <xsl:if test="author=not(.=preceding::author|editor)" ><!-- this is so that we get unique authors and editors: Please comment on this #####1--> <xsl:apply-templates select="author"> <xsl:with-param name="temppubid" select="@pubid" /> </xsl:apply-templates> </xsl:if> </xsl:template> <xsl:template match="author"> <person> <xsl:attribute name="perid"> <xsl:template name="generate-author-id"> <!-- generating ids --> </xsl:attribute> <personname> <xsl:value-of select="."/> </personname> </person> <pubper> <pubid> <xsl:value-of select="$temppubid"/><!-- Why is this not printing the parameter that I am sending #####2 --> </pubid> <perid> <xsl:value-of select="$tempperid"/> <!- I want to print the id that I just created for person over here. Why is this not printing....how to print the value ####3--> </perid> <persontype>1</persontype> </pubper> </xsl:template> <xsl:template name="generate-author-id"> <xsl:variable name="last" select="number(preceding::author[@perid][1]/@perid)"/> <xsl:variable name="this" select="count(preceding::author[not(@perid)])+1"/> <xsl:variable name="temp" select="concat('800000000',$last+$this)" /> <xsl:value-of select="substring($temp,string-length($temp)-9)" /> <!-- we just want 10-digit IDs --> <xsl:template> </xsl:stylesheet> Please comment on ###1, ###2, ###3 I dont know why is this not working...any help will be appreciated Thanks in advance jinx ===== ----------------------------------------------------------------- Jinesh Varia Graduate Student, Information Systems Pennsylvania State University Email: jinesh@xxxxxxx ----------------------------------------------------------------- 'Self is the author of its actions.' __________________________________________________ Do you Yahoo!? Yahoo! Mail Plus - Powerful. Affordable. Sign up now. http://mailplus.yahoo.com XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
Current Thread |
---|
|
<- Previous | Index | Next -> |
---|---|---|
Re: [xsl] not matching empty text n, Joerg Heinicke | Thread | Re: [xsl] Generating IDs and sepera, Charles White |
RE: [xsl] not matching empty text n, Ross Ken | Date | RE: [xsl] Are variables allowed in , XSLList |
Month |