Subject: Re: [xsl] creating multi-level TOC from existing list From: "Martin Honnen martin.honnen@xxxxxx" <xsl-list-service@xxxxxxxxxxxxxxxxxxxxxx> Date: Fri, 5 Jun 2020 05:45:44 -0000 |
title="RVZXKR LUBVI need help with XSLT 2.0. I am completely stumped on how to proceed. I have tried doing string comparisons and that is not working. I am sure there is way to use grouping to accomplish what I need, but I just don't know how to create two separate groups and build the TOC I need. I have no code to show. Any help to put me in the right direction is appreciated.
Below is the input, followed by the desired output. Text has been distorted due company policies.
Input snippet:
<toc> B B B <tocEntry title="01 VNGKNV"> B B B B B B B <tocEntry title="0100 VNGKNV XSSVMBLY"> B B B B B B B B B B B <tocEntry filename="M2390992350401.xml"
title="RVZLXCVCKL FKLTVR XSSVMBLY"/> B B B B B B B </tocEntry> B B B </tocEntry> B B B <tocEntry title="01 VNGKNV"> B B B B B B B <tocEntry title="0100 VNGKNV XSSVMBLY"> B B B B B B B B B B B <tocEntry filename="M2812292350401.xml"
CCNTXKNVR"/>HYDRXULKC RVSVRVCKR BRXCKVT"/> B B B B B B B </tocEntry> B B B </tocEntry> B B B <tocEntry title="01 VNGKNV"> B B B B B B B <tocEntry title="0100 VNGKNV XSSVMBLY"> B B B B B B B B B B B <tocEntry filename="M3007592350401.xml" B B B B B B B B B B B B B B B title="RVZLXCV VNGKNV FRCM SHKZZKNG/STCRXGV
CRXNKSHXFT ZULLVY"/>B B B B B B B </tocEntry> B B B </tocEntry> B B B <tocEntry title="01 VNGKNV"> B B B B B B B <tocEntry title="0102 CRXNKSHXFT"> B B B B B B B B B B B <tocEntry filename="M2356292350401.xml" B B B B B B B B B B B B B B B title="RVZLXCV VKBRXTKCN DXMZVR XND
title="RVZLXCV RVXRB B B B B B B </tocEntry> B B B </tocEntry> B B B <tocEntry title="01 VNGKNV"> B B B B B B B <tocEntry title="0102 CRXNKSHXFT"> B B B B B B B B B B B <tocEntry filename="M2357392350401.xml"
title="RVZLXCVCRXNKSHXFT SVXL"/> B B B B B B B </tocEntry> B B B </tocEntry> B B B <tocEntry title="01 VNGKNV"> B B B B B B B <tocEntry title="0103 FLYWHVVL XSSVMBLY"> B B B B B B B B B B B <tocEntry filename="M2357292350401.xml"
title="RVZLXCV RVXRFLYWHVVL"/> B B B B B B B </tocEntry> B B B </tocEntry> B B B <tocEntry title="01 VNGKNV"> B B B B B B B <tocEntry title="0103 FLYWHVVL XSSVMBLY"> B B B B B B B B B B B <tocEntry filename="M2390892350401.xml"
title="RVZLXCV XKRCRXNKSHXFT XDXZTVR"/> B B B B B B B </tocEntry> B B B </tocEntry> B B B <tocEntry title="03 FUVL SYSTVM"> B B B B B B B <tocEntry title="0304 XKR CLVXNVR"> B B B B B B B B B B B <tocEntry filename="M2142592350401.xml"
KNTXKVCLVXNVR BCCT"/> B B B B B B B </tocEntry> B B B </tocEntry> B B B <tocEntry title="03 FUVL SYSTVM"> B B B B B B B <tocEntry title="0304 XKR CLVXNVR"> B B B B B B B B B B B <tocEntry filename="M2376292350401.xml" B B B B B B B B B B B B B B B title="RVZLXCV TURBCCHXRGVR CCMZRVSSCR
title="RVZLXCVZRVSSURV/TVMZVRXTURV SVNSCR"/> B B B B B B B </tocEntry> B B B </tocEntry> B B B <tocEntry title="03 FUVL SYSTVM"> B B B B B B B <tocEntry title="0305 SUZVRCHXRGVR, BLCWVR, TURBCCHXRGVR CR XLTKTUDV CCMZVNSXTCR"> B B B B B B B B B B B <tocEntry filename="M2249792350401.xml"
title="RVZXKR LUBVTURBCCHXRGVR "/> B B B B B B B </tocEntry> B B B </tocEntry> </toc>
Desired output:
<toc> B B B <tocEntry title="01 VNGKNV"> B B B B B B B <tocEntry title="0100 VNGKNV XSSVMBLY"> B B B B B B B B B B B <tocEntry filename="M2390992350401.xml"
title="RVZLXCVCKL FKLTVR XSSVMBLY"/> B B B B B B B <tocEntry filename="M2812292350401.xml" title="RVZLXCV HYDRXULKC RVSVRVCKR BRXCKVT"/> B B B B B B B B B B B <tocEntry filename="M3007592350401.xml" B B B B B B B B B B B B B B B title="RVZLXCV VNGKNV FRCM SHKZZKNG/STCRXGV CCNTXKNVR"/></tocEntry> B B B B B B B <tocEntry title="0102 CRXNKSHXFT"> B B B B B B B B B B B <tocEntry filename="M2356292350401.xml"
title="RVZLXCV RVXRVKBRXTKCN DXMZVR XND CRXNKSHXFT ZULLVY"/> B B B B B B B B B B B <tocEntry filename="M2357392350401.xml"
title="RVZLXCVCRXNKSHXFT SVXL"/> B B B B B B B </tocEntry> B B B B B B B <tocEntry title="0103 FLYWHVVL XSSVMBLY"> B B B B B B B B B B B <tocEntry filename="M2357292350401.xml"
title="RVZLXCVFLYWHVVL"/> B B B B B B B B B B B <tocEntry filename="M2390892350401.xml"
title="RVZLXCV XKRCRXNKSHXFT XDXZTVR"/> B B B B B B B </tocEntry> B B B </tocEntry> B B B <tocEntry title="03 FUVL SYSTVM"> B B B B B B B <tocEntry title="0304 XKR CLVXNVR"> B B B B B B B B B B B <tocEntry filename="M2142592350401.xml"
KNTXKVCLVXNVR BCCT"/> B B B B B B B B B B B <tocEntry filename="M2376292350401.xml" B B B B B B B B B B B B B B B title="RVZLXCV TURBCCHXRGVR CCMZRVSSCR
title="RVZLXCVZRVSSURV/TVMZVRXTURV SVNSCR"/> B B B B B B B </tocEntry> B B B B B B B <tocEntry title="0305 SUZVRCHXRGVR, BLCWVR, TURBCCHXRGVR CR XLTKTUDV CCMZVNSXTCR"> B B B B B B B B B B B <tocEntry filename="M2249792350401.xml"
TURBCCHXRGVR "/> B B B B B B B </tocEntry> B B B </tocEntry> </toc>
<xsl:template match="toc"> <xsl:copy> <xsl:for-each-group select="tocEntry" group-by="@title"> <xsl:copy> <xsl:apply-templates select="@*"/> <xsl:for-each-group select="current-group()/tocEntry" group-by="@title"> <xsl:copy> <xsl:apply-templates select="@*, current-group()/tocEntry"/> </xsl:copy> </xsl:for-each-group> </xsl:copy> </xsl:for-each-group> </xsl:copy> </xsl:template>
for arbitrary levels you would need to morph that into a recursive function or template.
Current Thread |
---|
|
<- Previous | Index | Next -> |
---|---|---|
[xsl] creating multi-level TOC from, Charlie0 charlieo0@x | Thread | Re: [xsl] creating multi-level TOC , Martin Honnen martin |
[xsl] creating multi-level TOC from, Charlie0 charlieo0@x | Date | Re: [xsl] creating multi-level TOC , Martin Honnen martin |
Month |