我真是关闭此时间;)XSL不必要的下一个元素 - 读取标签和子标签属性
娄有:
- 我XSL脚本
我的XML文件(即通话脚本)
在xsl的操作的对XML的输出(如shuold是)
我的问题是,尽管href和src值应该是相同的,但它们之间始终存在一个 图片差异(pic3和pic4),就好像我在调用下一个pic元素一样......但我不明白我在哪里去做?
<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
2010-09-21 15:28:06
同上rincewind说。同时发布您从XSL样式表中获得的实际XML输出。 – LarsH 2010-09-21 16:22:59
看到我的答案,报告提供的转换实际上产生了想要的结果。 – 2010-09-21 16:37:54