从文档中,XSL处理器可用于动态生成href链接(或其他HTML内容):
<xhtml:tr>
<xhtml:td>
<xsl:for-each select="{instance('fr-form-instance')/form/retrievalSection/retrievalControl">
<xhtml:a href="http://somewhere/">
<xsl:value-of select="SomeData"/>
<xsl:if test="position() lt last()">
<br/>
</xsl:if>
</xhtml:a>
</xsl:for-each>
</xhtml:td>
以上只是粗略的示例代码,上面的href是静态的,可以忽略。
问题是这个(xslt生成的链接文本)在实例更新时没有自动更新;怎么实现呢?
答案 0 :(得分:1)
当页面加载时,XSLT处理一劳永逸地完成。您可以将XSLT步骤视为模板或预处理步骤。完成后,XForms处理结果,然后动态更新。
你可以通过这种方式混合使用XSLT和XForms,但这并非易事,如果可以,最好避免使用它。
我会尝试专门使用XForms来实现这一点,例如:
<xhtml:td>
<xforms:repeat nodeset="instance('fr-form-instance')/form/retrievalSection/retrievalControl">
<xhtml:a href="http://somewhere/">
<xforms:output value="SomeData"/>
<xhtml:br/>
</xhtml:a>
</xforms:repeat>
</xhtml:td>
如果您希望href
是动态的,请使用类似于XSLT的AVT:
href="{expression}"
最后,您可以将<br/>
置于<xforms:group>
内以使其成为条件,但如果可以的话,最好在这种情况下使用CSS。