我是XML / XSLT的新手,我正在尝试显示一个包含人员数据的表格,包括他们所在国家/地区的旗帜。但是,当我这样做时,我只是在每一行中重复了第一张图片。有人可以请我帮忙让每一行显示不同的旗帜吗?
这是我的XML格式:
<person>
<firstname>Joe</firstname>
<lastname>Bloggs</lastname>
<picture src="/images/gb.png"/>
</person>
这是我的XSLT:
<table class="table-striped">
<tr>
<th>Name</th>
<th>Flag</th>
</tr>
<xsl:for-each select="person">
<tr>
<td><xsl:value-of select="firstname"/><xsl:value-of select="lastname"/></td>
<td><img src="{/person/picture/@src}" /></td>
</tr>
</xsl:for-each>
</table>
答案 0 :(得分:1)
使用
<img src="{/person/picture/@src}" />
您指的是绝对路径,但在您的xsl:for-each
中,您已将上下文节点设置为information/person
。因此,将XPath更改为相对(到上下文节点person
)路径,如
<img src="{picture/@src}" />
这应该考虑xsl:for-each
。