【发布时间】:2011-04-15 06:36:19
【问题描述】:
这次我真的很接近了;)
下面有:
- 我的 xsl 脚本
我的 xml 文件(调用脚本)
在 xml 上操作 xsl 的输出(应该如此)
我的问题是,虽然 href 和 src 值应该相同,但总有一个 它们之间的图片差异(pic3 和 pic4)好像我正在调用下一个图片元素......但我不明白我在哪里做的?
<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>
这是我的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>
这应该是输出:
<div>
<a href="pics\pic01.jpg">
<img src="pics\pic01.jpg">
</a>
</div>
<div>
<a href="pics\pic02.jpg">
<img src="pics\pic02.jpg">
</a>
</div>
<div>
<a href="pics\pic03.jpg">
<img src="pics\pic03.jpg">
</a>
</div>
<div>
<a href="pics\pic04.jpg">
<img src="pics\pic04.jpg">
</a>
</div>
<div>
<a href="pics\pic05.jpg">
<img src="pics\pic05.jpg">
</a>
</div>
【问题讨论】:
-
为我工作。我已将您的 for-each 包含在 中。使用 xsltproc(--version 使用 libxml 20706、libxslt 10126 和 libexslt 815)它会以相反的顺序产生预期的结果(从 pic5 到 pic1,与源 xml 的顺序相同)。尝试创建一个最小但完整(有效!)的 xsl 模板来显示您的问题。
-
同上 rincewind 所说的。还要发布您从 XSL 样式表中获得的实际 XML 输出。
-
查看我的回答,报告提供的转换实际上产生了想要的结果。
-
+1 @ rincewind :首先我很高兴我有这个错误,因为我了解到我可以使用 xsltproc 检查 xslt 结果......或者在我的情况下,我发现 eclipea 很容易使用:vogella.de/articles/XSLT/article.html .... 不管怎样,bug 消失了...一定是缓存问题。非常感谢 Asaf