0

我想接受这个问题,只有它的选项(那些代码属性以问题代码开头的选项)。例如:如果我有一个问题 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,每个问题都会改变。

我怎样才能做到这一点?

4

1 回答 1

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>
于 2013-10-01T16:38:33.433 回答