Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/xml/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/xslt/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Xml 表单输入值属性中的XSLT单引号和双引号?_Xml_Xslt - Fatal编程技术网

Xml 表单输入值属性中的XSLT单引号和双引号?

Xml 表单输入值属性中的XSLT单引号和双引号?,xml,xslt,Xml,Xslt,希望有一个快速的问题,我如何才能使它形成良好的格式,从而运行 <input type="rad" name="RadGroup" value="<xsl:value-of select="productOptionInfo"/>" /> 我基本上希望在属性值中放置一个值,但它们都需要双引号 有什么想法吗 非常感谢在XSLT中,有一个在属性中使用值的快捷方式: <input type="rad" name="RadGroup" value="{productOp

希望有一个快速的问题,我如何才能使它形成良好的格式,从而运行

<input type="rad" name="RadGroup" value="<xsl:value-of select="productOptionInfo"/>" />

我基本上希望在属性值中放置一个值,但它们都需要双引号

有什么想法吗


非常感谢

在XSLT中,有一个在属性中使用值的快捷方式:

<input type="rad" name="RadGroup" value="{productOptionInfo}" />

可以在内部使用单引号,在外部使用双引号,反之亦然

此外,XML规范说明:

要允许属性值同时包含单引号和双引号,撇号或单引号字符(
)可以表示为“
”,双引号字符(“)可以表示为“


使用花括号表示法:

<input type="rad" name="RadGroup" value="{productOptionInfo}" />

这是错误的

<input type="rad" name="RadGroup" 
       value="<xsl:value-of select='productOptionInfo'/>" /> 
<input type="rad" name="RadGroup" 
       value='<xsl:value-of select="productOptionInfo"/>' />  
<input type="rad" name="RadGroup" value="{productOptionInfo}"/> 
<xsl:attribute name="input" select="productOptionInfo"/>

这也是错误的

<input type="rad" name="RadGroup" 
       value="<xsl:value-of select='productOptionInfo'/>" /> 
<input type="rad" name="RadGroup" 
       value='<xsl:value-of select="productOptionInfo"/>' />  
<input type="rad" name="RadGroup" value="{productOptionInfo}"/> 
<xsl:attribute name="input" select="productOptionInfo"/>

在XML中,将(未缩放的)标记作为属性值是一个语法错误。请参阅W3XML规范--

两种正确的方法是(称为AVT或):


<xsl:attribute name="input">
  <xsl:value-of select="productOptionInfo"/>
</xsl:attribute>

在XSLT 2.0中,允许编写以下内容:

<input type="rad" name="RadGroup" 
       value="<xsl:value-of select='productOptionInfo'/>" /> 
<input type="rad" name="RadGroup" 
       value='<xsl:value-of select="productOptionInfo"/>' />  
<input type="rad" name="RadGroup" value="{productOptionInfo}"/> 
<xsl:attribute name="input" select="productOptionInfo"/>

当元素的名称是静态已知的(预先知道的)时,上面的第一种方法是最短、可读性最强的方法


当元素名不是静态已知时,必须使用第二种方法,并且必须使用
指令生成。

@Mac-我添加了更多选项:)您的前两次尝试完全错误。属性不能包含未转换的标记。请通过实际运行来验证您的解决方案。我不是你提到的那个悲观的选民——我今天早上才醒来——但他可能只是对这些缺陷做出了反应。谢谢你让它起作用了,你和奥德德同时给了我正确的答案!好问题,+1。请参阅我的答案,以了解当前所选答案错误的原因,以及两个正确的XSLT 1.0解决方案和另一个XSLT 2.0解决方案。:)