Subject: Re: [xsl] problem with transforming mixed content From: "Graydon graydon@xxxxxxxxx" <xsl-list-service@xxxxxxxxxxxxxxxxxxxxxx> Date: Sat, 15 Aug 2020 02:34:12 -0000 |
On Sat, Aug 15, 2020 at 02:16:04AM -0000, Wolfhart Totschnig wolfhart.totschnig@xxxxxxxxxxx scripsit: > <title>THE TITLE OF THE BOOK WITH SOME <i>ITALICS</i> AND SOME MORE WORDS: > THE SUBTITLE OF THE BOOK WITH SOME <i>ITALICS</i></title> > > What I would like to do is > 1) separate the title from the subtitle (i.e., divide the data at the colon) > and put each in a separate element node; > 2) all the while maintaining the <i> markup; > 3) and perform certain string manipulations on all of the text nodes; for > the purposes of this post, I will use the example of converting upper-case > to lower-case. > > So the desired output is the following: > > <title>the title of the book with some <i>italics</i> and some more > words</title> > <subtitle>the subtitle of the book with some <i>italics</i></subtitle> <xsl:template match="title"> <title> <xsl:sequence select="serialize(node()) => substring-before(':') => lower-case() => parse-xml-fragment()" /> </title> <subtitle> <xsl:sequence select="serialize(node()) => substring-after(':') => lower-case() => parse-xml-fragment()" /> </subtitle> </xsl:template> gives <title>the title of the book with some <i>italics</i> and some more words</title> <subtitle> the subtitle of the book with some <i>italics</i></subtitle> That's XSLT 3.0, it assumes there's always a colon, and could be made rather more robust, but that's the general idea; treat the contents of the element as a string sometimes and as nodes sometimes. -- Graydon Saunders | graydonish@xxxxxxxxx ^fs oferiode, pisses swa mfg. -- Deor ("That passed, so may this.")
Current Thread |
---|
|
<- Previous | Index | Next -> |
---|---|---|
[xsl] problem with transforming mix, Wolfhart Totschnig w | Thread | Re: [xsl] problem with transforming, Dimitre Novatchev dn |
[xsl] problem with transforming mix, Wolfhart Totschnig w | Date | Re: [xsl] problem with transforming, Dimitre Novatchev dn |
Month |