例如,我的XML看起来像:
<rss>
<channel>
<item>
<title>Story1</title>
<images>
<image>
<type>main</type>
<url>http://...</url>
</image>
<image>
<type>thumb</type>
<url>http://...</url>
</image>
</images>
</item>
<item>
<title>Story2</title>
<images>
<image>
<type>main</type>
<url>http://...</url>
</image>
<image>
<type>thumb</type>
<url>http://...</url>
</image>
</images>
</item>
</channel>
</rss>
我的XSLT目前看起来像这样:
<xsl:template match="/">
<xsl:for-each select="channel/item">
<xsl:if test="position()=1">
<b><xsl:value-of select="title"/></b><br/>
<img><xsl:attribute name="src"><xsl:value-of select="images/image[type='thumb']/url"/></xsl:attribute></img>
<br/><br/>
<b><xsl:value-of select="./following-sibling::item[1]/title"/></b><br/>
<img><xsl:attribute name="src"><xsl:value-of select="./following-sibling::item[1]/images/image[type='thumb']/url"/></xsl:attribute></img>
</xsl:if>
</xsl:for-each>
</xsl:template>
结果是第一个故事有正确的<title>
和&#34;拇指&#34;但是第二个故事的标题是正确的,但没有图像,因为选择图像节点<xsl:value-of select="./following-sibling::item[1]/images/image[type='thumb']/url"/>
的XPATH似乎没有匹配任何东西。
如何选择具有<url>
节点的以下兄弟<image>
节点的<images>
节点的<type>
节点&#39;拇指&#39;?
答案 0 :(得分:1)
结果是第一个故事有正确的和 “拇指”图像......
不,实际上结果是null,因为指令:
<xsl:for-each select="channel/item">
与任何内容都不匹配。如果您将其更改为:
<xsl:for-each select="rss/channel/item">
然后我认为一切都会落实到位。虽然那里有一些令人费解的部分:你只想输出前两项吗?