|
Subject: [xsl] copy attributes modifying their values, regardless of their names From: TW <zupftom@xxxxxxxxxxxxxx> Date: Sat, 4 Dec 2010 08:45:20 +0100 |
Hi all, I'm generating XSL stylesheets using XSL. One thing I want to do is modify all attribute value templates found in the source document. I thought something like this would do the job: <stylesheet version="1.0" xmlns="http://www.w3.org/1999/XSL/Transform"> <template name="modify-attribute-value-templates"> Create replacement value </template> <template match="*"> <copy> <for-each select="@*"> <copy> <call-template name="modify-attribute-value-templates"/> </copy> </for-each> <apply-templates/> </copy> </template> </stylesheet> But much to my chagrin I realized that <copy> already copies the value if applied to attributes. A workaround could be a long choose element like this: <template match="*"> <copy> <for-each select="@*"> <choose> <when test="not(contains(string(),'{'))"> <copy/> </when> <when test="local-name()='att1'"> <attribute name="att1"> <call-template name="modify-attribute-value-templates"/> </attribute> </when> <when test="local-name()='att2'"> <attribute name="att2"> <call-template name="modify-attribute-value-templates"/> </attribute> </when> <!-- a ton of more attributes --> <otherwise> <message terminate="yes"> The attribute value template found in attribute <value-of select="local-name()"/> isn't handled by the stylesheet. </message> </otherwise> </choose> </for-each> <apply-templates/> </copy> </template> There might be an awful lot of attributes that have to be handled. If I don't know what attributes are to be found in the source document, then I I'll have to add another step to the process, creating the above choose statement using another stylesheet. I refuse to believe that something I thought would be done in three lines turns out to require thousands of lines for case differentiation and potentially an additional step in the process. Can anyone help? Thomas W.
| Current Thread |
|---|
|
| <- Previous | Index | Next -> |
|---|---|---|
| [xsl] Re: generating schemas from X, Michael Kay | Thread | Re: [xsl] copy attributes modifying, Emmanuel Bégué |
| [xsl] Re: generating schemas from X, Michael Kay | Date | Re: [xsl] copy attributes modifying, Emmanuel Bégué |
| Month |