如何使用jquery提取要转换的XML文档的一部分(xslt) ?
How can I extract part of an XML document using jquery to be transformed (xslt)?
我想知道如何使用jquery将XML文档的一部分提取到将通过XSLT转换的对象中?那么,假设我有这样一个示例XML文档:
<nutrition>
<daily-values>
<total-fat units="g">65</total-fat>
<saturated-fat units="g">20</saturated-fat>
<cholesterol units="mg">300</cholesterol>
<sodium units="mg">2400</sodium>
<carb units="g">300</carb>
<fiber units="g">25</fiber>
<protein units="g">50</protein>
</daily-values>
<food>
<name>Avocado Dip</name>
<mfr>Sunnydale</mfr>
<serving units="g">29</serving>
<calories total="110" fat="100"/>
<total-fat>11</total-fat>
<saturated-fat>3</saturated-fat>
<cholesterol>5</cholesterol>
<sodium>210</sodium>
<carb>2</carb>
<fiber>0</fiber>
<protein>1</protein>
<vitamins>
<a>0</a>
<c>0</c>
</vitamins>
<minerals>
<ca>0</ca>
<fe>0</fe>
</minerals>
</food>
<food>
<name>Bagels, New York Style </name>
<mfr>Thompson</mfr>
<serving units="g">104</serving>
<calories total="300" fat="35"/>
<total-fat>4</total-fat>
<saturated-fat>1</saturated-fat>
<cholesterol>0</cholesterol>
<sodium>510</sodium>
<carb>54</carb>
<fiber>3</fiber>
<protein>11</protein>
<vitamins>
<a>0</a>
<c>0</c>
</vitamins>
<minerals>
<ca>8</ca>
<fe>20</fe>
</minerals>
</food>
</nutrition>
假设我只想要第一个<食物>…& lt;/food>块,我希望将其保存为对象或字符串。如何使用jquery做到这一点?一旦提取了XML块,就可以适当地将其与XSL文档结合起来进行转换(XSLT)。非常感谢您的帮助!食物>
更新;澄清:
如果我的问题不清楚,我很抱歉。请允许我澄清我的立场。我很清楚XML可以通过使用浏览器的DOM以及IE和非IE实现之间的差异来操纵。我可以在XML对象上使用cloneNode和selectNodes等方法。事实上,我就是这么做的。现在,如果我将jQuery引入到这个等式中,我想用jQuery处理它的方式来替换所有这些代码行。也就是说,也许有一个jQuery插件可以消除直接与每个浏览器的XML DOM交互的需要,在"幕后"处理交叉兼容性。我正在寻找一个js框架,将照顾一切为我,而不是我如何处理它的时刻,这是IE和非IE浏览器的单独实现。
我希望这能澄清我的问题。
非常感谢您的帮助
使用jQuery.parseXML(xmlString)可以将XML字符串转换为jQuery对象,然后做任何你想做的。
或
如果是XML文件,可以通过AJAX获取
$.ajax({
type: "GET",
url: "file.xml",
dataType: "xml",
error: function(){},
success: function (xml) {// you can access the parsed XML just like you do it with HTML }
});
在兼容的浏览器中,您可以使用XMLSerializer:
将文档对象或片段转换为XMLvar d = document.createElement('div');
d.id = 'div0'
var p = d.appendChild(document.createElement('p'));
var xmlString = (new XMLSerializer()).serializeToString(d);
alert(xmlString);
// shows <div xmlns="http://www.w3.org/1999/xhtml" id="div0"><p></p></div>
在IE中多做了一点工作,但不多。您需要创建一个您想要的XML对象,然后获取它的 XML 属性:
alert(xmlObject.xml);
在做了一些研究之后,似乎就连jQuery社区中的人也建议由浏览器来完成XML操作,因为它通常更快。
相关文章:
- 获取@ResponseBody的一部分作为主干和Spring MVC控制器之间的参数
- 如何检查字符串的一部分与数组匹配
- 为什么可以't我使用了AJAX响应的一部分
- 仅重新加载网页的一部分
- 如何使用ViewCompiler手动编译DOM的一部分
- Regex提取URL返回数组的一部分;未定义”;
- Html地图对象-点击地图获取id的一部分
- 如何使用JavaScript提取此url的一部分
- 将字符串的一部分设置为数组的一部分
- 用数字单位替换字符串的一部分
- 如何对单个页面进行密码保护(这不是身份验证系统的一部分)
- 附加和删除输入值的一部分
- 仅对标题标记的一部分使用document.write
- 如何使表格的一部分变灰
- 通过JavaScript设置的表单字段的值不会作为$_POST的一部分传递给PHP脚本
- 将d3中饼图的一部分隔开
- 如何放置单独的ajax调用,使页面的一部分完全响应,而另一部分仍在加载
- 移除字符串(如果找到)移除JS中字符串的一部分
- 在使用Javascript作为XSLT转换的一部分时如何传递参数
- 如何使用jquery提取要转换的XML文档的一部分(xslt) ?