Re: [xsl] Noobie: normalize <b><a>...</a></b> to <a><b>...</b></a>

Subject: Re: [xsl] Noobie: normalize <b><a>...</a></b> to <a><b>...</b></a>
From: Martin Honnen <Martin.Honnen@xxxxxx>
Date: Thu, 18 Feb 2010 19:09:04 +0100
Kenneth Reid Beesley wrote:

I'm converting a non-XML data-dump into XML, and the document contains examples of both




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>

<xsl:template match="@* | node()"> <xsl:copy> <xsl:apply-templates select="@* | node()"/> </xsl:copy> </xsl:template>

  <xsl:template match="b[a and not(a[2]) and not(node()[not(self::a)])]">
        <xsl:apply-templates select="a/node()"/>

might suffice.


	Martin Honnen

Current Thread