Subject: RE: [xsl] Glossary Help From: "Shailesh Shinde" <shailesh@xxxxxxxxxxxx> Date: Thu, 3 Aug 2006 19:46:52 +0530 |
Hi, The below xsl code works fine and getting required output....but now I have receive the xml file from client where the <p id="doe13"> contains so the below xsl code is failing to match the cases......what needs to be done here? <?xml version="1.0" encoding="UTF-8"?> <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> <xsl:output method="xml" indent="yes"/> <xsl:preserve-space elements="*"/> <xsl:strip-space elements="*"/> <xsl:template match="node()|@*"> <xsl:copy> <xsl:apply-templates select="@*|node()"/> </xsl:copy> </xsl:template> <xsl:template match="division[(@type='appendix') and ((topic/title = 'Glossary') or (topic/title = 'A'))]"> <division> <xsl:copy-of select="@*"/> <xsl:for-each select="topic"> <topic> <xsl:copy-of select="@*"/> <xsl:copy-of select="title"/> <xsl:apply-templates select="body[ancestor::division[(@type='appendix')]]" mode="dogloss"/> </topic> </xsl:for-each> </division> </xsl:template> <xsl:template match="body[ancestor::division[(@type='appendix')]]" mode="dogloss"> <glosslist> <xsl:apply-templates select="p[not(text())]/i/b" mode="dogloss"/> <xsl:apply-templates select="p[text()]/i/b" mode="dogloss"/> <xsl:apply-templates select="p[not(text())]/b" mode="dogloss"/> <xsl:apply-templates select="p[text()]/b" mode="dogloss"/> </glosslist> </xsl:template> <xsl:template match="p[not(text())]/i/b" mode="dogloss"> <glossdiv> <xsl:value-of select="."/> </glossdiv> </xsl:template> <xsl:template match="p[text()]/i/b" mode="dogloss"> <glossentry> <glossterm> <xsl:value-of select="."/> </glossterm> <glossdef> <xsl:value-of select="../../text()"/> </glossdef> </glossentry> </xsl:template> <xsl:template match="p[not(text())]/b" mode="dogloss"> <glossdiv> <xsl:value-of select="."/> </glossdiv> </xsl:template> <xsl:template match="p[text()]/b" mode="dogloss"> <glossentry> <glossterm> <xsl:value-of select="."/> </glossterm> <glossdef> <xsl:value-of select="../text()"/> </glossdef> </glossentry> </xsl:template> </xsl:stylesheet> Thanks, Shailesh -----Original Message----- From: Mukul Gandhi [mailto:gandhi.mukul@xxxxxxxxx] Sent: Monday, July 31, 2006 10:02 PM To: xsl-list@xxxxxxxxxxxxxxxxxxxxxx Subject: Re: [xsl] Glossary Help On 7/31/06, Shailesh Shinde <shailesh@xxxxxxxxxxxx> wrote: I have few comments.. <xsl:preserve-space elements="*"/> <xsl:strip-space elements="*"/> I think you may not need above. This seems to have no effect. I think you can modify the below template as following: <xsl:template match="division[(@type='appendix') and ((topic/title = 'Glossary') or (topic/title = 'A'))]"> <!-- you can add more or clauses --> <division> <xsl:copy-of select="@*"/> <xsl:for-each select="topic"> <topic> <xsl:copy-of select="@*"/> <xsl:copy-of select="title"/> <!-- you may need to modify this as well --> <xsl:apply-templates select="body[ancestor::division[@type='appendix']]"/> </topic> </xsl:for-each> <xsl:apply-templates/> </division> </xsl:template> I guess I have given you lot of pointers to get started. -- Regards, Mukul Gandhi http://gandhimukul.tripod.com
Current Thread |
---|
|
<- Previous | Index | Next -> |
---|---|---|
Re: [xsl] OO 2.0.3/xhtml export/DCM, Gannon Dick | Thread | Re: [xsl] Glossary Help, Mukul Gandhi |
Re: [xsl] OO 2.0.3/xhtml export/DCM, Andrew Franz | Date | Re: [xsl] Glossary Help, Mukul Gandhi |
Month |