Javascript 应用appendTo以将排序节点添加到应用模板

Javascript 应用appendTo以将排序节点添加到应用模板,javascript,jquery,xml,xslt,append,Javascript,Jquery,Xml,Xslt,Append,我试图用jquery以编程方式插入appendTo()方法。我有一个格式化样式表,用于格式化xml表,但我使用jquery和javascript在第三个HTML文档中进行了格式化。我的原始xml采用以下格式: <guitars> <guitar> <model>AStrat</model> <year>1978</year> <name>Strat</

我试图用jquery以编程方式插入appendTo()方法。我有一个格式化样式表,用于格式化xml表,但我使用jquery和javascript在第三个HTML文档中进行了格式化。我的原始xml采用以下格式:

<guitars>
    <guitar>
        <model>AStrat</model>
        <year>1978</year>
        <name>Strat</name>
        <price>2500</price>
    </guitar>
</guitars>
但这似乎不太可能。稍后,我将通过XSLT处理器将XSL应用于XML。知道我做错了什么吗? 基本上我想要这句话:

<xsl:apply-templates select="/guitars/guitar">
                </xsl:apply-templates>

成为:

<xsl:apply-templates select="/guitars/guitar">
          <xsl:sort select="model" data-type="text"/>
</xsl:apply-templates>


谢谢

XSLT


模型
年
名称
价格
jquery

//<xsl:apply-templates><![CDATA[
  $(function() {
    $("div#append_here" ).children().append('<xsl:sort select="model" data-type="text"/>');
  });
//]]></xsl:apply-templates>
//

您只需在XSLT中定义一个全局参数
,然后

        <xsl:apply-templates select="/guitars/guitar">
          <xsl:sort select="*[local-name() = $sort-key]"/>
        </xsl:apply-templates>


然后,不必每次需要更改该键时都操作XSLT代码,只需以不同的方式设置参数,例如给定
var proc=new XSLTProcessor()使用导入的样式表,您可以设置例如
proc.setParameter(“”,'sort key','model')。没有必要操纵XSLT样式表。

不幸的是,这并没有做到这一点。我想问题可能是这个
$(“div#append_here”)
。在您的版本和我的版本中,jquery都没有成功地针对外部xsl文档。我确实发现了一个漏洞。不幸的是,它不涉及任何
append
方法。在原始的xsl表中,我有这样一个:
,然后我只是在我的html页面中使用它:
$(样式表)
where
sortByElement=
model、year、price等。感谢您的回复,这样就行了。不幸的是,由于我的需求,我被迫通过动态更改XSLT来获得结果。
      <xsl:output method="html" version="4.0" encoding="UTF-8" indent="yes"/>

      <xsl:template match="/">
          <table id="guitarTable" border="1" width="200">
              <tr class="header">
                  <th>Model</th>
                  <th>Year</th>
                  <th>Name</th>
                  <th>Price</th>
              </tr>
              <div id="append_here">
              <xsl:apply-templates select="/guitars/guitar">
              </xsl:apply-templates>
              </div>
          </table>
      </xsl:template>

      <xsl:template match="guitar">
          <tr>
              <td> <xsl:value-of select="model" /> </td>
              <td> <xsl:value-of select="year" />  </td>
              <td> <xsl:value-of select="name"/> </td>
              <td> <xsl:value-of select="price" /> </td>
          </tr>
      </xsl:template>

  </xsl:stylesheet>
//<xsl:apply-templates><![CDATA[
  $(function() {
    $("div#append_here" ).children().append('<xsl:sort select="model" data-type="text"/>');
  });
//]]></xsl:apply-templates>
        <xsl:apply-templates select="/guitars/guitar">
          <xsl:sort select="*[local-name() = $sort-key]"/>
        </xsl:apply-templates>