如何在XSLT中从XML的ExifInfo节点获取指定DbExif的Data值
解决方法
直接用下面的XPath表达式替换你代码里的**????????????**即可:
ExifInfo/DbExif[FriendlyExifName='Create Date']/Data
具体说明
- 这个表达式基于当前
<DbImage>节点的上下文编写:从<DbImage>出发,先找到子节点<ExifInfo>,再筛选出其中<FriendlyExifName>文本为"Create Date"的<DbExif>节点,最后提取该节点下的<Data>值。 - 如果担心存在多个匹配的
<DbExif>节点,可以加[1]确保只取第一个匹配项:ExifInfo/DbExif[FriendlyExifName='Create Date'][1]/Data
替代写法(若想用xsl:for-each)
之前循环没成功大概率是上下文处理有误,正确的循环写法应该在<DbImage>的处理逻辑里编写:
<xsl:for-each select="ExifInfo/DbExif[FriendlyExifName='Create Date']"> <xsl:value-of select="Data"/> </xsl:for-each>
不过直接用xsl:value-of配合XPath表达式会更简洁高效。
内容的提问来源于stack exchange,提问作者NP90
相关产品推荐
相关产品推荐

