|
Subject: RE: [xsl] Noobie: normalize <b><a>...</a></b> to <a><b>...</b></a> From: "Michael Kay" <mike@xxxxxxxxxxxx> Date: Thu, 18 Feb 2010 18:09:30 -0000 |
Two templates: an identity template that copies everything by default
<xsl:template match="*">
<xsl:copy>
<xsl:copy-of select="@*"/>
<xsl:apply-templates/>
</
</
and a template for the nodes you want to change:
<xsl:template match="b[a][count(child::node()=1]">
<a>
<b>
<xsl:apply-templates select="a/child::node()"/>
</b>
</a>
</xsl:template>
Regards,
Michael Kay
http://www.saxonica.com/
http://twitter.com/michaelhkay
> -----Original Message-----
> From: Kenneth Reid Beesley [mailto:krbeesley@xxxxxxxxx]
> Sent: 18 February 2010 17:55
> To: xsl-list@xxxxxxxxxxxxxxxxxxxxxx
> Subject: [xsl] Noobie: normalize <b><a>...</a></b> to
> <a><b>...</b></a>
>
>
> I'm converting a non-XML data-dump into XML, and the document
> contains examples of both
>
> <a><b>...</b></a>
>
> and
>
> <b><a>...</a></b>
>
> which (in this document) are equivalent. I'd like to use
> XSLT to convert all examples of the latter to the former,
> with the following
> caveats:
>
> 1. <b> can contain mixed text, in which case nothing should
> be changed.
> 2. <b><a>...</a></b> should be changed to <a><b>...</b></a>
> only if the <a>...</a> element is the unique child node of <b>...</b>
>
> How can I do this?
>
> Thanks,
>
> Ken
>
> ******************************
> Kenneth R. Beesley, D.Phil.
> P.O. Box 540475
> North Salt Lake, UT
> 84054 USA
| Current Thread |
|---|
|
| <- Previous | Index | Next -> |
|---|---|---|
| Re: [xsl] Noobie: normalize <b><a>., Martin Honnen | Thread | Re: [xsl] Noobie: normalize <b><a>., Syd Bauman |
| Re: [xsl] Noobie: normalize <b><a>., Martin Honnen | Date | Re: [xsl] Noobie: normalize <b><a>., Syd Bauman |
| Month |