我想提出问题,只考虑其选项(代码属性以问题代码开头的选项)。例如:如果我有一个问题T1Q1,我想只检索T1Q1_1,T1Q1_2等选项。
我做了一个for-each循环。我想迭代每个问题,获取其代码,然后再次迭代所有代码以问题代码字符开头的选项。但我不知道该怎么做。
XML:
<question code="T1Q1">Which encoding did you use?</question>
<option code="T1Q1_1">ISO-8859-1</option>
<option code="T1Q1_2">UTF-8</option>
<option code="T1Q1_3">Other</option>
<question code="T1Q2">Which blabla did you blabla?</question>
<option code="T1Q2_1">Absurdanipal</option>
<option code="T1Q2_2">Fantasmagoric</option>
<option code="T1Q2_3">Other</option>
XSLT:
<xsl:for-each select="pollns:question">
<xsl:value-of select="@code"/><br/>
<xsl:for-each select="following-sibling::pollns:option[starts-with(@code,'T1Q1')]">
<xsl:value-of select="."/><br />
</xsl:for-each>
</xsl:for-each>
如你所见,我写了starts-with(@code, 'T1Q1')
。我想用动态变量或类似的东西替换每个问题的T1Q1。
我该怎么做?
答案 0 :(得分:0)
我想我已经找到了解决方案。
<强> XSLT:强>
<xsl:for-each select="pollns:question">
<xsl:variable name="questionCode" select="@code"/>
<xsl:value-of select="@code"/><br/>
<xsl:for-each select="following-sibling::pollns:option[starts-with(@code,$questionCode)]">
<xsl:value-of select="."/><br />
</xsl:for-each>
</xsl:for-each>