Subject: RE: [xsl] preceding-sibling:: while keeping xml well formed From: "Michael Kay" <mike@xxxxxxxxxxxx> Date: Tue, 31 May 2005 18:20:37 +0100 |
Try something like: <xsl:template match="b//i | i//b"> <bolditalic> <xsl:apply-templates/> </bolditalic> </xsl:template> In your example the b is an ancestor or descendant of the i, not a sibling. Michael Kay http://www.saxonica.com/ > -----Original Message----- > From: Spencer Tickner [mailto:spencertickner@xxxxxxxxx] > Sent: 31 May 2005 17:48 > To: xsl-list@xxxxxxxxxxxxxxxxxxxxxx > Subject: [xsl] 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
Current Thread |
---|
|
<- Previous | Index | Next -> |
---|---|---|
[xsl] preceding-sibling:: while kee, Spencer Tickner | Thread | RE: [xsl] preceding-sibling:: while, Aron Bock |
RE: [xsl] xsl:include problems, Ross, Douglas | Date | RE: [xsl] preceding-sibling:: while, Aron Bock |
Month |