我有一个样品XSLT计数兄弟
<Root>
<A rename="yes,it is option 1"/>
<C rename="no"/>
<A rename="yes,it is option 2"/>
<C rename="no"/>
<C rename="yes"/>
<C rename="no"/>
<A rename="yes,it is option 3"/>
<A rename="yes,it is option 4"/>
<C rename="no"/>
<C rename="yes"/>
<C rename="no"/>
<C rename="no"/>
</Root>
然后我将模板应用于这个样子
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output omit-xml-declaration="yes" indent="yes"/>
<xsl:template match="A">
<p><b>option1: <xsl:value-of select="count(following-sibling::C[preceding-sibling::A[1]/@rename[contains(.,'option 1')]])"/></b></p>
<p><b>option2: <xsl:value-of select="count(following-sibling::C[preceding-sibling::A[1]/@rename[contains(.,'option 2')]])"/></b></p>
<p><b>option3: <xsl:value-of select="count(following-sibling::C[preceding-sibling::A[1]/@rename[contains(.,'option 3')]])"/></b></p>
<p><b>option4: <xsl:value-of select="count(following-sibling::C[preceding-sibling::A[1]/@rename[contains(.,'option 4')]])"/></b></p>
</xsl:template>
</xsl:stylesheet>
,但我想输出这个样子的,如果没有下面的兄弟姐妹,我们只是忽略这个one.just打印这些@rename包含“选项”,也包含元素
option1: 1
option2: 3
option4: 4
我所得到的是现在
option1: 1
option2: 3
option3: 0
option4: 4
option1: 0
option2: 3
option3: 0
option4: 4
option1: 0
option2: 0
option3: 0
option4: 4
option1: 0
option2: 0
option3: 0
option4: 4
现在,这是一个很好的例子,不使用XML。为什么在你不给数据任何结构时使用结构化格式? – Tomalak
另外*您没有真正尝试*您输入的显示XSLT代码。我几乎得到你想要的输出。请在您的问题中多加一些注意,如果您的代码和问题文本讲述了两个不同的故事,则无法帮助您。 – Tomalak
我只是想简化我的原始文件 –