我有一个网站,其中包含基于文档类型动态填充的文档的链接,所有数据都位于一个中央xml文件中.我想让
JQuery将参数传递给样式表,样式表根据传递的参数使用xpath隔离节点,然后根据属性对注释进行排序.从我发现的所有文档中,JQuery本身不支持XSLT,并且一旦原始xml被转换,没有任何第三方插件可以返回新的XML对象.我错过了什么或是我想要的不可能吗? xsl文件已经在javascript之外进行了测试,它运行完美.
这是没有转换的代码示例
$.ajax({ type: "GET",url: "xml/charts.xml",dataType: "xml",success: function(xml) { $(xml).find('chart').each(function(){ // Create link here }); } });
解决方法
另一个是
http://jquery.glyphix.com/jquery.xslTransform/example/index.html上的jquery.xslTransform
// now load both files into variables for the next 2 transformations var xsldoc = $.xsl.load('test.xsl'); var xmldoc = $.xsl.load('test.xml'); // with an xpath $('#with').getTransform( xsldoc,xmldoc,{ xpath: '/test/inside' } );
或者作为一般文件说明:
$.getTransform( 'path-to-xsl.xsl',// path or xsl document in javascript variable 'path-to-xml.xml',// path or xml document in javascript variable { params: { // object for your own xsl parameters paramName1: 'paramValue1',paramName2: 'paramValue2' },xpath: '/test/inside',// trims your xml file to that defined by this xpath eval: true,// evaluates any <script> blocks it finds in the transformed result callback: function(){} // getTransform evaluates this function when transformation is complete }); // loads an xml file,parses it and stores it in xmlDoc var xmlDoc = xslTransform.load('path-to-xml.xml');
在链接页面上有一个使用示例,猜测它可以满足您的需求,虽然它是sarissa的javascript包装器,它试图在所有浏览器中为XSL工具制作独立于浏览器的API.