OK, I think I found the culprit for the strange behavior with IMG-elements.
The Problem: After fixing the problem of id-attributes not being passed through to the final HTML I notices a strange behaviour with IMG-elements: - If an IMG-element had no id-attribute everything worked fine. IMG was processed as expected. - If it had an id-attribute however strange things happended, the IMG-element was renderered like this <img alt="Icon"><a name="icon"></a> which obviously made it pretty useless. Analysis: Going down the pipeline I found the culprit in pelts document2html where img is processed as part of this default template: 1 <xsl:template match="node()|@*" priority="-1"> 2 <xsl:copy> 3 <xsl:apply-templates select="@*"/> 4 <xsl:apply-templates/> 5 </xsl:copy> 6 </xsl:template> Debugging this I found line 3 starting to copy the IMG-element then trying to execute the following template <!-- Generate a <a name="..."> tag for an @id --> <xsl:template match="@id"> <xsl:if test="normalize-space(.)!=''"> <a name="{.}"/> </xsl:if> </xsl:template> which tries to insert a a-element right into our open img-element, triggering an error and aborting the processing (which explains the strange result). Attempted Solution: 1 <xsl:template match="node()|@*" priority="-1"> <!-- id processing will create its own a-element so processing has to happen outside the copied element --> 2 <xsl:apply-templates select="@id"/> 3 <xsl:copy> 4 <xsl:apply-templates select="@* and ???"/> 5 <xsl:attribute name="id">{id}</xsl:attribute> <xsl:apply-templates/> </xsl:copy> </xsl:template> Line 2 will only process ids and insert the a-element before the img-tag as usual (question: does it make sense to have this id-processing here AND in several templates that I saw in common? That seems to invite redundant processing?) Line 4 should now exclude @id but I'm not sure how to express that in X-Path if I want to process all attributes but id? Can someone pls help? Line 5 inserts the unprocessed id-attribute for use in css-styling. So wdyt? -- Ferdinand Soethe