Javascript 应用appendTo以将排序节点添加到应用模板
我试图用jquery以编程方式插入appendTo()方法。我有一个格式化样式表,用于格式化xml表,但我使用jquery和javascript在第三个HTML文档中进行了格式化。我的原始xml采用以下格式: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</
<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页面中使用它:$(样式表)
wheresortByElement=
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>