Subject: Re: [xsl] clever ways to dynamically copy/create element structure as needed? From: "Michael Kay mike@xxxxxxxxxxxx" <xsl-list-service@xxxxxxxxxxxxxxxxxxxxxx> Date: Sun, 2 Oct 2022 17:38:16 -0000 |
Using parse-xml() to parse a literal string at run-time is going to be pretty inefficient (although it might be optimiser if you're lucky). It might be a bit more wordy, but a global variable <xsl:variable name="empty-prolog" as="element(prolog)"> <prolog/> </xsl:variable> is going to be a lot more efficient. > On 2 Oct 2022, at 16:04, Chris Papademetrious christopher.papademetrious@xxxxxxxxxxxx <xsl-list-service@xxxxxxxxxxxxxxxxxxxxxx> wrote: > > Aaand posting again because I forgot the <xsl:copy> on the bmetadatab template: > > > <xsl:mode name="add-data" on-no-match="shallow-copy"/> > > <xsl:template match="topic" mode="add-data"> > <xsl:copy> > <xsl:apply-templates select="@*"/> > <xsl:apply-templates select="title,titlealts,shortdesc,abstract"/> > <xsl:apply-templates select="(prolog, parse-xml('<prolog/>'))[1]" mode="add-data"/> > <xsl:apply-templates select="body,related-links,topic"/> > </xsl:copy> > </xsl:template> > > <xsl:template match="prolog" mode="add-data"> > <xsl:copy> > <xsl:apply-templates select="@*"/> > <xsl:apply-templates select="author,source,publisher,copyright,critdates,permissions"/> > <xsl:apply-templates select="(metadata,parse-xml('<metadata/>'))[1]" mode="add-data"/> > <xsl:apply-templates select="change-historylist,resourceid,data,sort-as,data-about,foreign,mathml, svg-container,unknown"/> > </xsl:copy> > </xsl:template> > > <xsl:template match="metadata" mode="add-data"> > <xsl:copy> > <xsl:apply-templates select="@*"/> > <xsl:apply-templates select="audience,category,keywords,prodinfo,othermeta"/> > <xsl:apply-templates select="data[not(@name = 'prefix')]"/> > <data name="prefix">my-prefix</data> > <xsl:apply-templates select="sort-as,data-about,foreign,mathml,svg-container,unknown"/> > </xsl:copy> > </xsl:template> > > > Sorry for all the list noise. I get too excited when my XSLT fiddle worksb& > > Chris > > XSL-List info and archive <http://www.mulberrytech.com/xsl/xsl-list> > EasyUnsubscribe <http://lists.mulberrytech.com/unsub/xsl-list/293509> (by email <>)
Current Thread |
---|
|
<- Previous | Index | Next -> |
---|---|---|
Re: [xsl] clever ways to dynamicall, Chris Papademetrious | Thread | [xsl] Saxonica announces the releas, Norm Tovey-Walsh ndw |
Re: [xsl] clever ways to dynamicall, Chris Papademetrious | Date | [xsl] Saxonica announces the releas, Norm Tovey-Walsh ndw |
Month |