Subject: Re: [xsl] How to remove outer tag if present in XSLT From: "Dimitre Novatchev dnovatchev@xxxxxxxxx" <xsl-list-service@xxxxxxxxxxxxxxxxxxxxxx> Date: Fri, 17 Mar 2023 17:26:17 -0000 |
A simple XSLT 1.0 solution (using even Saxon 6.5.3 is OK :) ): <xsl:stylesheet version="1.0" xmlns:xsl=" http://www.w3.org/1999/XSL/Transform"> <xsl:output omit-xml-declaration="yes" indent="yes"/> <xsl:strip-space elements="*"/> <xsl:template match="node()|@*"> <xsl:copy> <xsl:apply-templates select="node()|@*"/> </xsl:copy> </xsl:template> <xsl:template match="arbitrary-outer-tag-thats-valid/*[1][not(following-sibling::*)]"> <xsl:apply-templates/> </xsl:template> </xsl:stylesheet> Thanks, Dimitre On Fri, Mar 17, 2023 at 9:55b/AM Matt Van Voorhies mvanvoorhies@xxxxxxxxxxx < xsl-list-service@xxxxxxxxxxxxxxxxxxxxxx> wrote: > > > Hi folks, > > > > I have a hopefully simple question that I > was unable to find a good answer for. Ibm trying to convert some code we > have that manipulates an XML structure (transforming to HTML output) and > move it into the XSLT transform. > > > > Problem: Given a specific XML tag, I need > to remove the bcontaining paragraphb but only if itbs a single containing > paragraph tag. Parsing using .NET Saxon 10.6 for transform. > > > > So for example, if I have the following XML > structure b > > > > <arbitrary-outer-tag-thats-valid> > <p>Some content, probably a bunch of > internal tags like H1, H2, LI, DIV, etc. </p> > <p>More content, again, may have more > stuff in it like an <p>Internal paragraph</p></p> > <p>stuff3</p> > </ arbitrary-outer-tag-thats-valid > > > > > Running through the transform would produce: > > > > <arbitrary-outer-tag-thats-valid> > <p>Some content, probably a bunch of > internal tags like H1, H2, LI, DIV, etc. </p> > <p>More content, again, may have more > stuff in it like an <p>Internal paragraph</p></p> > <p>stuff3</p> > </ arbitrary-outer-tag-thats-valid > > > > > Since there is *not* an outer/containing > paragraph tag. > > > > However, if the input was b > > > > <arbitrary-outer-tag-thats-valid> > > *<p>* > <p>Some content, probably a bunch of internal > tags like H1, H2, LI, DIV, etc. </p> > <p>More content, again, may have more stuff in it > like an <p>Internal paragraph</p></p> > <p>stuff3</p> > > *</p>* > </ arbitrary-outer-tag-thats-valid > > > > > Running through the transform would produce: > > > > <arbitrary-outer-tag-thats-valid> > <p>Some content, probably a bunch of > internal tags like H1, H2, LI, DIV, etc. </p> > <p>More content, again, may have more > stuff in it like an <p>Internal paragraph</p></p> > <p>stuff3</p> > </ arbitrary-outer-tag-thats-valid > > > > > Where the single, containing <p> tag was removed, but > everything inside of it was retained exactly as it was. > > > > Could someone help? > > > > Thanks, > > Matt Van Voorhies > > mvanvoorhies@xxxxxxxxxxx > > > > > > > > XSL-List info and archive <http://www.mulberrytech.com/xsl/xsl-list> > EasyUnsubscribe <http://lists.mulberrytech.com/unsub/xsl-list/782854> (by > email <>)
Current Thread |
---|
|
<- Previous | Index | Next -> |
---|---|---|
Re: [xsl] How to remove outer tag i, Matt Van Voorhies mv | Thread | Re: [xsl] How to remove outer tag i, Matt Van Voorhies mv |
Re: [xsl] How to remove outer tag i, Chris Papademetrious | Date | Re: [xsl] How to remove outer tag i, Matt Van Voorhies mv |
Month |