xsl-list
[Top] [All Lists]

[xsl] Rebuild an element without copying defaulted attributes?

2014-08-12 11:22:30
I have a situation where I need to process 4,000 DITA topics to update
them. I'm making updates which will then be included in the production
data going forward. I need to modify certain elements and pass others
through unchanged.

My problem is the unchanged.

So there is an element <pre> that has a defaulted @xml:space set to
preserve. When I rebuild this element and recreate all the existing
attributes my output now has a hard coded attribute setting.

So

    <pre ixia_locid="7">there's also the Duplicate Supplier Taxpayer ID
Number Report</pre>

became

 <pre ixia_locid="7" xml:space="preserve">there's also the Duplicate
Supplier Taxpayer ID Number Report</pre>

It seems like the only way I can avoid getting the defaulted attributes
copied is to remove the reference to the DTD in all the topics. Is there
any other way to accomplish this?

Currently I'm using this template:

<xsl:template match="*">
<xsl:element name="{name(.)}">
<xsl:for-each select="@*">
    <xsl:attribute name="{name(current())}" ><xsl:value-of
select="."/></xsl:attribute>
</xsl:for-each>
<xsl:apply-templates/>
</xsl:element>
</xsl:template>
--~----------------------------------------------------------------
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
EasyUnsubscribe: http://lists.mulberrytech.com/unsub/xsl-list/1167547
or by email: xsl-list-unsub(_at_)lists(_dot_)mulberrytech(_dot_)com
--~--

<Prev in Thread] Current Thread [Next in Thread>