我想使用xslt输出html控件,但我需要能够命名控件,以便在表单发回时我可以使用它们。
我希望能够命名单选按钮"action_" + _case_id
。
<?xml version="1.0" encoding="utf-8"?>
<?xml-stylesheet type="text/xsl" href="data.xsl"?>
<NewDataSet>
<Cases>
<Case>
<case_id>30</case_id>
</Case>
<Cases>
</NewDataSet>
<?xml version="1.0" encoding="iso-8859-1"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template match="/">
<div class="your_action">
Your action:<br />
<input type="radio" name="?" value="No" checked ="true"/> nothing to report<br />
<input type="radio" name="?" value="Yes" /> memo to follow
</div>
</xsl:template>
</xsl:stylesheet>
答案 0 :(得分:3)
使用: 的 强>
<input type="radio" name="{concat('action_', /*/*/*/case_id)}" value="No" checked ="true"/>
如果你的xml文档发生了变化,可能需要用更详细的位置步骤替换上面的“*”字符。
答案 1 :(得分:0)
<?xml version="1.0" encoding="utf-8"?>
<?xml-stylesheet type="text/xsl" href="data.xsl"?>
<NewDataSet>
<Cases>
<Case>
<case_id>30</case_id>
</Case>
<Cases>
</NewDataSet>
<?xml version="1.0" encoding="iso-8859-1"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template match="/">
<xsl:variable name="actionid">action_<xsl:value-of select="Cases/Case/case_id"/></xsl:variable>
<div class="your_action">
Your action:<br />
<input type="radio" name="{actionid}" value="No" checked ="true"/> nothing to report<br />
<input type="radio" name="{actionid}" value="Yes" /> memo to follow
</div>
</xsl:template>
</xsl:stylesheet>
注意:未经测试。您可能希望专门为Case节点添加一个匹配器,而不仅仅是在根节点上匹配。
答案 2 :(得分:0)
在引用变量时,您需要在变量前加上$符号:
<input type="radio" name="{$actionid}" value="No" checked ="true"/> nothing to report<br />
答案 3 :(得分:0)
您的数据集具有很好的属性,它是一棵树,每个节点都可以通过它在树中的路径来识别。我想说最好的办法是以反映这一点的方式命名与每个XML节点对应的控件:
您只需要一种方法来获取父节点的名称,例如:
<xsl:variable name="parent1Name"
select="name(parent::*)" />