0

我有这个 XML:

<EditRemote>
   <RemoteVendorServer>
      <FriendlyName><![CDATA[blabla]]></FriendlyName>
      <Description></Description>
      <CommunicationMethod>
         <GetExecutors>
            <Executor queryString=".*"/>
            <Executor queryString="[CX].*"/>
            <Executor queryString="[^CX].*"/>
         </GetExecutors>
         <RemoteAccess/>
      </CommunicationMethod>
   </RemoteVendorServer>
</EditRemote>

我想在“Executor”标签上做应用模板,并将所有 queryStrings 值收集到动态创建的具有动态 ID 的隐藏输入中。所以我的代码如下所示:

<script type="text/javascript">
     .
     .
    var queryCounter = 0;
    var c_UNDERSCORE_QUERY_STRING = "_queryString";
     .
</script>
     .
     .
<xsl:apply-templates select="EditRemote/RemoteVendorServer/CommunicationMethod/GetExecutors/Executor" mode="tcp"/>
 .
 .
 // at the bottom of the xsl file I create the template:
 <xsl:template match="Executor" mode="tcp">     
    <input value="{@queryString}">
         <xsl:attribute name="id">
            <script type="text/javascript">
                queryCounter + c_UNDERSCORE_QUERY_STRING+"tcp";
            </script>
         </xsl:attribute>
         <xsl:attribute name="name">
            <script type="text/javascript">
                queryCounter + c_UNDERSCORE_QUERY_STRING+"tcp";
            </script>
         </xsl:attribute>
    </input>

    <script type="text/javascript">
        queryCounter++;
    </script>
</xsl:template>

我回到服务器的只是最后一个没有键名的查询。它以某种方式进入了一个名为 Description(textarea element) 的不同输入,该输入在上面的应用模板之前用 xsl 编写:服务器输入:...,Description=[^CX].*,... 我什至看到了在我的 UI 中,当页面加载时,查询位于描述文本区域内。我的代码中似乎有什么问题?

4

1 回答 1

1

您不能将脚本标签放入<xsl:attribute>.

而且您绝对不能从 XSLT 中执行或访问 JavaScript - 为什么您认为这是可能的?

尝试这样的事情。

<xsl:template match="Executor" mode="tcp">   
    <input value="{@queryString}" id="{position()}_queryString_tcp" name="{position()}_queryString_tcp" />
</xsl:template>

阅读

于 2013-01-10T08:01:59.643 回答