This is the mail archive of the xsl-list@mulberrytech.com mailing list .


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]

Copying ALL attributes using Xalan C++


I am trying to use the code given in FAQs to copy all attributes from an
input XML tag to an output tag. Example:

Input XML has: <img src="someSource" alt="someAlt"/>
Desired output should be exactly the same...

I used both of the two codes provided in FAQs as follows, none of them
works:

Results with first XSL:
======================
	<xsl:template match="img">
		<xsl:copy>
			<xsl:copy-of select="@*"/>
		</xsl:copy>
	</xsl:template>

It gives me this output: <img>someAltsomeSource</img> usually. And sometimes
even more funky behavior like copying the attributes to some other totally
irrelevant tag.

Results with second XSL:
=======================
	<xsl:template match="img">
		<img>
    		<xsl:for-each select="@*"/>
			<xsl:attribute name="name()"><xsl:value-of select="."/></xsl:attribute>
    		</xsl:for-each>
		</img>
  	</xsl:template>

With this XSL, program exits with some assertion error in XSLTEngineImpl.

I tried several things and following code works for some files:
	<xsl:template match="img|img/@*">
	<xsl:copy>
	<xsl:apply-templates select="@*"/>
	<xsl:apply-templates/>
	</xsl:copy>
	</xsl:template>

Can someone comment on what's going on and what's the right way of copying
all the attribs from an input xml tag to an output tag (Please note that
other XSLTs might give correct result but I am interested in Xalan C++
only)?

Thanks,
Zartash


 XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]