|
[XSL-LIST Mailing List Archive Home] [By Thread] [By Date] [Recent Entries] [Reply To This Message] preceding-sibling:: while keeping xml well formed
Hello, and thanks in advance for the help.
I am using xslt to convert one xml to another importable xml.
Everything is going fine except for the fact that the program I am
importing into supports <italic>, and <bold>, but needs a <bolditalic>
when the both are together.
My original xml file is used on the web so of course
<i>This<b>is</b>valid</i>.
I assume this can be done using the preceding-sibiling axis to achive
something along the lines of
<italic>This</italic><bolditalic>is</boldItalic><italic>valid</italic>
So far I'm just hitting templates with my inline elements, However I
still just get <bold> and <italic> tags with the xsl below:
XML
<document>
<test>This <b>is a <i>test</i> of bolditalic</b> type</test>
</document>
XSLT
<xsl:template match="document">
<xsl:apply-templates select="test"/>
</xsl:template>
<xsl:template match="test">
<xsl:element name="newxmltag">
<xsl:applytemplates="text()|i|b"/>
</xsl:element>
</xsl:template>
<xsl:template match="b">
<xsl:choose>
<xsl:when test="preceding-sibling::strong">
<xsl:element name="bolditalic">
<xsl:apply-templates/>
</xsl:element>
</xsl:when>
<xsl:otherwise>
<xsl:element name="bold">
<xsl:apply-templates/>
</xsl:element>
</xsl:otherwise>
</xsl:choose>
</xsl:template>
<xsl:template match="i">
<xsl:choose>
<xsl:when test="preceding-sibling::strong">
<xsl:element name="bolditalic">
<xsl:apply-templates/>
</xsl:element>
</xsl:when>
<xsl:otherwise>
<xsl:element name="italic">
<xsl:apply-templates/>
</xsl:element>
</xsl:otherwise>
</xsl:choose>
</xsl:template>
Any Help you all can offer would be very appreciated.
Thank you,
Spencer
|
PURCHASE STYLUS STUDIO ONLINE TODAY!Purchasing Stylus Studio from our online shop is Easy, Secure and Value Priced! Download The World's Best XML IDE!Accelerate XML development with our award-winning XML IDE - Download a free trial today! Subscribe in XML format
|

Cart








