所以基本上我需要一个循环遍历 XML 节点的函数,如果条件为真,它将该值添加到变量中。我正在汇总社交帖子,需要计算每个社交帖子中有多少在提要中。这是我的 XML:
<feed>
<channel>
<sources>
<source>
<name>Facebook</name>
<count>3</count>
</source>
<source>
<name>Twitter</name>
<count>2</count>
</source>
<source>
<name>Twitter</name>
<count>8</count>
</source>
</sources>
</channel>
</feed>
问题是同一个来源可以出现多次,我需要将它们加在一起。因此,对于上述 XML,我需要 10 个 twitter 计数。这是我目前所处的位置:
<xsl:variable name="num_tw">
<xsl:for-each select="feed/channel/sources/source">
<xsl:choose>
<xsl:when test="name, 'twitter')">
<xsl:value-of select="count"/>
</xsl:when>
<xsl:otherwise></xsl:otherwise>
</xsl:choose>
</xsl:for-each>
</xsl:variable>
<xsl:variable name="num_fb">
<xsl:for-each select="feed/channel/sources/source">
<xsl:choose>
<xsl:when test="name, 'facebook')">
<xsl:value-of select="count"/>
</xsl:when>
<xsl:otherwise></xsl:otherwise>
</xsl:choose>
</xsl:for-each>
</xsl:variable>
这不起作用,因为如果有两个 twitter 提要,它会将数字并排放置并输出“28”而不是“10”。任何帮助表示赞赏!