Subject: Re: [xsl] Searching text with elements help needed From: Michael Müller-Hillebrand <mmh@xxxxxxxxxxxxx> Date: Fri, 18 Jun 2010 09:44:15 +0200 |
Russ, Without having looked at your solution, how about this (in addition to the usual identity templates): <xsl:variable name="prefix" select="'For more information see '"/> <xsl:template match="Para[CrossReference]"> <xsl:copy> <xsl:for-each select="node()"> <xsl:choose> <xsl:when test="self::CrossReference and preceding-sibling::node()[1][self::text() and matches(., concat($prefix, '$'))]"> <xsl:comment select="'drop CrossReference'"/> </xsl:when> <xsl:when test="self::text() and matches(., concat($prefix, '$'))"> <xsl:value-of select="substring-before(., $prefix)"/> <xsl:comment select="concat('drop ', $prefix)"/> </xsl:when> <xsl:otherwise> <xsl:apply-templates select="."/> </xsl:otherwise> </xsl:choose> </xsl:for-each> </xsl:copy> </xsl:template> - Michael Am 18.06.2010 um 01:46 schrieb Russell Urquhart: > I have been tasked with trying to find a sentence in a <Para> element similar to the following: > > <Para> > Some text...For more information see <CrossReference>ItemofInterest</CrossReference>. Some more text, etc. > </Para> > > I have to determine if a sentence of the "For more information see <CrossReference> </CrossReference>." and, ideally delete it, but i would be just as happy to put it in comments. > > I was trying the following in a template: > > <xsl:template match="CrossReference"> > ***CROSSREFERENCE_FOUND*** > <xsl:apply-templates/> > </xsl:template> > <xsl:template match="Para"> > <P> > <!-- <xsl:analyze-string select="." regex="For more > +information[^\*]*\*\*\*CROSSREFERENCE_FOUND\*\*\*[^\.\?!]*[\.\?!]"> --> > <xsl:analyze-string select="." regex="(For more information[^\.\?!]*[\.\?!])"> > > <xsl:matching-substring> > <xsl:value-of select="concat('Found', regex-group(1), 'Found end')" /> > > </xsl:matching-substring> > </xsl:analyze-string> > <xsl:apply-templates/> > </P> > </xsl:template> > > Regular <Para> elements are translated to html <P> elements. I had tried to convert the <CrossReference> element to text thinking that would help the search process, but no dice. > > Can someone shed some light on how i should approach this and or have an example to share! > > Thanks for any help! > > Russ -- _______________________________________________________________ Michael M|ller-Hillebrand: Dokumentations-Technologie Adobe Certified Expert, FrameMaker Lvsungen und Training, FrameScript, XML/XSL, Unicode Blog: http://cap-studio.de/ - Tel. +49 (9131) 28747
Current Thread |
---|
|
<- Previous | Index | Next -> |
---|---|---|
[xsl] Searching text with elements , Russell Urquhart | Thread | [xsl] XML tags as map keys and impa, Wolfgang Laun |
Re: [xsl] XML tags as map keys and , Joe Fawcett | Date | Re: [xsl] XML tags as map keys and , Andrew Welch |
Month |