检查xslt中是否存在图像



我的任务是检查图像是否存在并显示它。上一个节点是酒店。

Xml文件:

<PhotoList>
<Photo>
<Url>https://image.shutterstock.com/image-photo/hotel-word-golden-letters-
on-600w-378101848.jpg</Url>
</Photo>
<Photo>
<Url>http://demotest.itravelsoftware.com/fotografije_itravel/7/715_636077306767263022.jpg</Url>
</Photo>
<Photo>
<Url>http://demotest.itravelsoftware.com/fotografije_itravel/7/714_636077303419440444.jpg</Url>
</Photo>
<Photo>
<Url>http://demotest.itravelsoftware.com/fotografije_itravel/7/539_636064349608545756.jpg</Url>
</Photo>
</PhotoList>

Xslt:

<xsl:for-each select="PhotoList/Photo">
<xsl:choose>
<xsl:when test="Photo != ''">
<td><img src="Photo" height="100" width="100"/></td>
</xsl:when>
</xsl:choose>
</xsl:for-each>

这不显示图片,我不确定是否!=''可以正确检查img是否存在。

也许您要查找的代码是

<xsl:for-each select="PhotoList/Photo">
<xsl:choose>
<xsl:when test="normalize-space(Url) != ''">
<td><img src="{Url}" height="100" width="100"/></td>
</xsl:when>
</xsl:choose>
</xsl:for-each>

但只有当存在具有空Url子级的Photo元素时,它才有用。函数normalize-space(Url)确保只有空白内容的Url元素被处理为空。