Re: [xsl] How to remove outer tag if present in XSLT

Subject: Re: [xsl] How to remove outer tag if present in XSLT
From: "Matt Van Voorhies mvanvoorhies@xxxxxxxxxxx" <xsl-list-service@xxxxxxxxxxxxxxxxxxxxxx>
Date: Fri, 17 Mar 2023 20:18:59 -0000
bbbbbbDimitre - this works great for removing the outer tag -- so
long as it's any outer tag.

bbbbbbHow would I limit this to just <p> tags??

bbbbbbSo for example,

bbbbbb<arbitrary-outer-tag>
bbbbbb<div>
bbbbbbbbbbbb<p>content<p>
bbbbbbbbbbbb<div>text</div
bbbbbbbbbbbb<b>more text</b>
bbbbbb</div>
bbbbbb<arbitrary-outer-tag>

bbbbbbWould remain unchanged?

bbbbbbThanks,
bbbbbbbbbbbbMatt V.
________________________________
From: Dimitre Novatchev dnovatchev@xxxxxxxxx
<xsl-list-service@xxxxxxxxxxxxxxxxxxxxxx>
Sent: Friday, March 17, 2023 1:26 PM
To: xsl-list@xxxxxxxxxxxxxxxxxxxxxx <xsl-list@xxxxxxxxxxxxxxxxxxxxxx>
Subject: Re: [xsl] How to remove outer tag if present in XSLT

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<mailto:mvanvoorhies@xxxxxxxxxxx>
<xsl-list-service@xxxxxxxxxxxxxxxxxxxxxx<mailto:xsl-list-service@xxxxxxxxxxxx
rytech.com>> 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<mailto:mvanvoorhies@hotmail.
com>







XSL-List info and archive<http://www.mulberrytech.com/xsl/xsl-list>
EasyUnsubscribe<http://lists.mulberrytech.com/unsub/xsl-list/782854> (by
email)


XSL-List info and archive<http://www.mulberrytech.com/xsl/xsl-list>
EasyUnsubscribe<http://lists.mulberrytech.com/unsub/xsl-list/3506713> (by
email<>)

Current Thread