0

从文档中,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 生成的链接文本)不会在实例更新时自动更新;如何做到这一点?

4

1 回答 1

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/>within an<xforms:group>设置为有条件的,但如果可以的话,在这种情况下使用 CSS 可能会更好。

于 2011-02-01T03:14:47.553 回答