Мне нужно перебрать данные XML и сгенерировать документ, в котором будет указано, сколько раз текст появляется в узле. Я близко, но я не могу заставить его работать. Я использую xsl 1.0 и не могу обновить его.
<xsl:variable name="found">
<root>
<content name="test">A</content>
<content name="test">A</content>
<content name="test">A</content>
<content name="test">B</content>
<content name="test">B</content>
<content name="test">C</content>
</root>
</xsl:variable>
<xsl:template match="document">
<document>
<xsl:for-each select="exsl:node-set($found)//content[@name='test']">
<content name="found-count">
<xsl:value-of select="." />,<xsl:value-of
select="count(exsl:node-set($found)//content[.= text()])"
/>
</content>
</xsl:for-each>
</document>
</xsl:template>
Вывод ...
<document>
<content name="found-count">A,6</content>
<content name="found-count">A,6</content>
<content name="found-count">A,6</content>
<content name="found-count">B,6</content>
<content name="found-count">B,6</content>
<content name="found-count">C,6</content>
</document>
Мне нужно, чтобы это было так (я буду обманывать позже):
<document>
<content name="found-count">A,3</content>
<content name="found-count">A,3</content>
<content name="found-count">A,3</content>
<content name="found-count">B,2</content>
<content name="found-count">B,2</content>
<content name="found-count">C,1</content>
</document>
Я думаю, что проблема в моем отчете
<xsl:value-of select="count(exsl:node-set($found)//content[.= text()])" />
Что я делаю не так?