Subject: [xsl] Need to process mixed content(text() and node()) in string matching|
From: Mandar Jagtap <mandar.jagtap@xxxxxxxxx>
Date: Thu, 9 Dec 2010 14:32:39 +0530
Hi, I have following scenario: Source xml is: <p>This is paragraph text.. <b>and bold</b> and normal <i>and italic</i> with value: ParagraphValue.</p> The XSLT should match the string (mixed with text() of <p>, content of element <i>, <b>) as " This is paragraph text..and bold and normal and italic with value" in <p> element and desired output given below. <paragraph1>This is paragraph text.. <b>and bold</b> and normal <i>and italic</i> with value</paragraph1> <paragraph2>ParagraphValue.</paragraph2> I tried with following approach: <xsl:template match="p"> <xsl:choose> <xsl:when test="contains(. , ':')"> <paragraph1><xsl:value-of select="substring-before(., ':')"/></paragraph1> <paragraph2><xsl:value-of select="substring-after(., ':')"/></paragraph2> </xsl:when> <xsl:otherwise><paragraph1><xsl:avlue-of select="."/></paragraph1></xsl:otherwise> </xsl:choose> </xsl:template> But with I could get only string but not elements <b> and <i> alongwith its content. Any suggestions on what would be best approach to achieve this? Thanks in advance...