|
[XSL-LIST Mailing List Archive Home] [By Thread] [By Date] [Recent Entries] [Reply To This Message] RE: mixed content searching
> I just subscribed a few minutes ago. This is a bit like the vicar complaining in his sermon about the people who aren't in church, but I do wish people would lurk for a week or too before posting. I'd like to get some help on or > probably some sample code that can do the following for me. > The given XML file has mixed contents data such as > > <doc>hello <name>Tom</name>. i am <name>Sue</name>. cheers</doc> > > Q1) how do I write grep.xsl to meet the following commands > H:> saxon example.xml grep.xsl target=Tom > Tom > > H:> saxon example.xml grep.xsl target=am > .... i am ... > > H:> saxon example.xml grep.xsl target=he > hello ... > .... cheers Guess: you want to output the contents of the text nodes containing the parameter string. If the node has following-sibling text nodes, follow it by "...". If it has preceding-sibling text nodes, precede it by "...". Output each match on a new line, with output method = text. Solution: <xsl:template match="text()"> <xsl:if test="contains(., $target)"> <xsl:if test="preceding-sibling::text()">... </xsl:if> <xsl:value-of select="."/> <xsl:if test="following-sibling::text()"> ...</xsl:if> <xsl:text>
</xsl:text> </xsl:if> </xsl:temlate> > > Q2) How do I write grep2.xsl to meet the following commands > H:> saxon example.xml grep2.xsl target=Tom > <doc>hello <name class="matched">Tom</name>. i am <name>Sue</name>. > cheers</doc> > > H:> saxon example.xml grep2.xsl target=am > <doc class="matched">hello <name>Tom</name>. i am <name>Sue</name>. > cheers</doc> > > H:> saxon example.xml grep2.xsl target=he > <doc class="matched">hello <name>Tom</name>. i am <name>Sue</name>. > cheers</doc> > > <xsl:template match="*"> <xsl:copy> <xsl:copy-of select="@*"/> <xsl:for-each select="text()"> <xsl:if test="contains(., $param)"> <xsl:attribute name="class">matched</xsl:attribute> </xsl:if> </xsl:for-each> <xsl:apply-templates/> </xsl:copy> </xsl:template> Michael Kay Software AG home: Michael.H.Kay@xxxxxxxxxxxx work: Michael.Kay@xxxxxxxxxxxxxx XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
|
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
|






