代码之家  ›  专栏  ›  技术社区  ›  j-p

在窗体内呈现值的XSL

  •  2
  • j-p  · 技术社区  · 15 年前

    简短的版本:(希望你能'看到'我在这里试图做什么)。。。。 我想将XML中的值“输出”到XSL中的表单字段中。。。

    <input type="text" value='<xsl:value-of select="//return/ControlNo"/>' />  
    

    这会引发一个错误…(请参见下文)


    长版本:

    <BODY onUnload('logit.htm?ID= ...xsl:value-of...','logitwindow'); &gt;
    

    或者-我提交一个带有所需值的表单

    <BODY onUnload(document.form.submit); >
    <form><input type="hidden" name="id" value=" ...xsl:value-of... "></form>
    

    我希望这有道理。。谢谢

    2 回复  |  直到 15 年前
        1
  •  3
  •   Chris Bentley    15 年前
    <input type="text" value="{//return/ControlNo}" /> 
    

    {}是“value of”的xslt快捷方式,与

    <input type="text">
       <xsl:attribute name="value">
          <xsl:value-of select="//return/ControlNo" />
       </xsl:attribute>
    </input>
    

        2
  •  2
  •   Dimitre Novatchev    15 年前
    <input type="text" value='<xsl:value-of
    

    select=“//return/ControlNo”/>'/>

    这样做的问题是,在XML中,属性值不允许包含任何标记(标记),并且抛出的错误是对此冲突的响应。

    有两种方法可以正确地做到这一点:短和长 :

    短途 . 用途:

    <input type="text" value="{//return/ControlNo}"/>
    

    {someExpression} AVT -- Attribute-Value-Template . 它导致 someExpression 以评估和评估结果取代此AVT。

    路途遥远

    <input type="text">
      <xsl:attribute name="value">
        <xsl:value-of select="//return/ControlNo"/>
      </xsl:attribute>
    </input>
    

    这是一个如何使用XSLT指令的示例 <xsl:attribute> 创建具有特定名称和特定值的属性。创建的属性必须紧跟在元素的创建之后(否则将引发错误)。这个属性将成为它紧随其后的元素的属性。