希望是一个简单的问题,我怎样才能使其形成良好,从而运行?
<input type="rad" name="RadGroup" value="<xsl:value-of select="productOptionInfo"/>" />
我基本上想要在属性值中放置一个值,但它们都需要双引号!?
有什么想法吗?
非常感谢
答案 0 :(得分:10)
在XSLT中,有一个快捷方式可以使用属性中的值:
<input type="rad" name="RadGroup" value="{productOptionInfo}" />
还有另一个选项,可以使用xsl:attribute
:
<input type="rad" name="RadGroup">
<xsl:attribute name="value">
<xsl:value-of select="productOptionInfo"/>
</xsl:attribute>
</input>
答案 1 :(得分:6)
这是错误的:
<input type="rad" name="RadGroup"
value="<xsl:value-of select='productOptionInfo'/>" />
,这也是错误的:
<input type="rad" name="RadGroup"
value='<xsl:value-of select="productOptionInfo"/>' />
在XML中,将(未转义)标记作为属性值是一种语法错误。请参阅W3 XML规范 - here 和 here 。
执行此操作的两种正确方法是(称为AVT或 attribute value templates ):
<input type="rad" name="RadGroup" value="{productOptionInfo}"/>
和强>
<xsl:attribute name="input">
<xsl:value-of select="productOptionInfo"/>
</xsl:attribute>
在XSLT 2.0中,允许编写:
<xsl:attribute name="input" select="productOptionInfo"/>
当元素的名称是静态知道的(提前)时,上面的第一种方法是最短且最易读的。
当元素名称不是静态知道时必须使用第二种方法,并且必须使用<xsl:element>
指令生成。
答案 2 :(得分:3)
使用花括号表示法:
<input type="rad" name="RadGroup" value="{productOptionInfo}" />
答案 3 :(得分:0)
您可以在内部使用单引号,在外部使用双引号,反之亦然。
另外,XML规范说:
要允许属性值包含单引号和双引号,撇号或单引号字符(
'
)可以表示为“'
”,双引号字符(“)作为“"
”。