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

Subject: Re: [xsl] How to remove outer tag if present in XSLT
From: "Chris Papademetrious christopher.papademetrious@xxxxxxxxxxxx" <xsl-list-service@xxxxxxxxxxxxxxxxxxxxxx>
Date: Fri, 17 Mar 2023 17:01:29 -0000
Hi Matt,

What are the precise conditions in which you want to ungroup the <p>?

Is it when all of the following are true:


  *   The element is a <p> element.
  *   The <p> element is the only child of its parent (it stands alone).
  *   The <p> element contains one or more child <p> elements.
  *   The <p> element contains no non-<p> elements.


  *   Chris

From: Matt Van Voorhies mvanvoorhies@xxxxxxxxxxx
<xsl-list-service@xxxxxxxxxxxxxxxxxxxxxx>
Sent: Friday, March 17, 2023 12:56 PM
To: xsl-list@xxxxxxxxxxxxxxxxxxxxxx
Subject: [xsl] How to remove outer tag if present in XSLT


                Hi folks,

                                I have a hopefully simple question that I was
unable to find a good answer for.  I'm 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 "containing paragraph" but only if it's a single containing
paragraph tag.  Parsing using .NET Saxon 10.6 for transform.

                                So for example, if I have the following XML
structure -

                                <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 -

                        <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<https://urldefense.com/v3/__http:/www.mulberrytech.com/xsl/xsl-list__
;!!A4F2R9G_pg!f_qbvL1lxWOiZkRI0MumM1kH5KnOex4dlaYXYl62f4FzOdI62eejmsROCcOtdPJ
gF-tbZjHczucMh-Dl7QrZrXNxWEcJ2NuFhCn7c_DukKs7FRSJCoPy$>
EasyUnsubscribe<https://urldefense.com/v3/__http:/lists.mulberrytech.com/unsu
b/xsl-list/3380743__;!!A4F2R9G_pg!f_qbvL1lxWOiZkRI0MumM1kH5KnOex4dlaYXYl62f4F
zOdI62eejmsROCcOtdPJgF-tbZjHczucMh-Dl7QrZrXNxWEcJ2NuFhCn7c_DukKs7FTtFsvdm$>
(by email<>)

Current Thread