В используемом вами процессоре XSLT может быть ошибка, или вы не предоставили реальный код xslt и документ xml.
Предоставленный фрагмент кода XSLT при включении в полную таблицу стилей :
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="xml" indent="yes" omit-xml-declaration="yes"/>
<xsl:template match="/">
<html>
<xsl:for-each select="data/pics/pic">
<div>
<a>
<xsl:attribute name="href">
<xsl:value-of select="@href" />
</xsl:attribute>
<img>
<xsl:attribute name="src">
<xsl:value-of select="@src" />
</xsl:attribute>
</img>
</a>
</div>
</xsl:for-each>
</html>
</xsl:template>
</xsl:stylesheet>
и применяется к предоставленному XML-документу :
<data>
<pics>
<pic href="pics\pic05.jpg" src="pics\pic05.jpg"></pic>
<pic href="pics\pic04.jpg" src="pics\pic04.jpg"></pic>
<pic href="pics\pic03.jpg" src="pics\pic03.jpg"></pic>
<pic href="pics\pic02.jpg" src="pics\pic02.jpg"></pic>
<pic href="pics\pic01.jpg" src="pics\pic01.jpg"></pic>
</pics>
</data>
дает требуемый, правильный результат :
<html>
<div>
<a href="pics\pic05.jpg">
<img src="pics\pic05.jpg"/>
</a>
</div>
<div>
<a href="pics\pic04.jpg">
<img src="pics\pic04.jpg"/>
</a>
</div>
<div>
<a href="pics\pic03.jpg">
<img src="pics\pic03.jpg"/>
</a>
</div>
<div>
<a href="pics\pic02.jpg">
<img src="pics\pic02.jpg"/>
</a>
</div>
<div>
<a href="pics\pic01.jpg">
<img src="pics\pic01.jpg"/>
</a>
</div>
</html>
Это преобразование дало тот же результат при выполнении с несколькими различными процессорами XSLT , такими как MSXML3,4,6, Saxon6.5 и AltovaXML (XML-SPY).
Обратите внимание , что преобразование может быть преобразовано в гораздо более короткое и читаемое:
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="xml" indent="yes" omit-xml-declaration="yes"/>
<xsl:template match="/">
<html>
<xsl:for-each select="data/pics/pic">
<div>
<a href="{@href}">
<img src="{@src}"/>
</a>
</div>
</xsl:for-each>
</html>
</xsl:template>
</xsl:stylesheet>