How do you add an image? How do you add an image? xml xml

How do you add an image?


Just to clarify the problem here - the error is in the following bit of code:

<xsl:attribute name="src">    <xsl:copy-of select="/root/Image/node()"/></xsl:attribute>

The instruction xsl:copy-of takes a node or node-set and makes a copy of it - outputting a node or node-set. However an attribute cannot contain a node, only a textual value, so xsl:value-of would be a possible solution (as this returns the textual value of a node or nodeset).

A MUCH shorter solution (and perhaps more elegant) would be the following:

<img width="100" height="100" src="{/root/Image/node()}" class="CalloutRightPhoto"/>

The use of the {} in the attribute is called an Attribute Value Template, and can contain any XPATH expression.

Note, the same XPath can be used here as you have used in the xsl_copy-of as it knows to take the textual value when used in a Attribute Value Template.


Shouldn't that be:

<xsl:value-of select="/root/Image/img/@src"/>

? It looks like you are trying to copy the entire Image/img node to the attribute @src


In order to add attributes, XSL wants

<xsl:element name="img">     (attributes)</xsl:element>

instead of just

<img>     (attributes)</img>

Although, yes, if you're just copying the element as-is, you don't need any of that.