为了账号安全,请及时绑定邮箱和手机立即绑定

JavaScript中变量字符串的XML解析

JavaScript中变量字符串的XML解析

www说 2019-06-05 14:27:28
JavaScript中变量字符串的XML解析我有一个可变串包含格式良好和有效的XML的。我需要使用JavaScript代码来解析这个提要。我如何使用(与浏览器兼容的)JavaScript代码来完成这个任务?
查看完整描述

3 回答

?
呼如林

TA贡献1798条经验 获得超3个赞

更新:有关更正确的答案,请参见蒂姆·唐恩的回答.

InternetExplorer,例如,基于Mozilla的浏览器为XML解析公开不同的对象,所以最好使用类似于jQuery来处理跨浏览器的差异。

一个非常基本的例子是:

var xml = "<music><album>Beethoven</album></music>";

var result = $(xml).find("album").text();

注意:正如注释中指出的那样;jQuery实际上并不进行任何XML解析,它依赖于DOM innerHTML方法,并将像解析任何HTML一样解析它,因此在XML中使用HTML元素名称时要小心。但是我认为它对于简单的XML“解析”很好,但是它可能不适合密集的或动态的XML解析,因为您没有预先知道XML会出现什么,如果一切都按预期进行分析的话,这将进行测试。


查看完整回答
反对 回复 2019-06-05
?
收到一只叮咚

TA贡献1821条经验 获得超5个赞

以下将在所有主要浏览器中将XML字符串解析为XML文档。除非您需要对IE<=8或某些模糊浏览器的支持,否则可以使用以下函数:

function parseXml(xmlStr) {
   return new window.DOMParser().parseFromString(xmlStr, "text/xml");}

如果您需要支持IE<=8,下面将完成此工作:

var parseXml;if (typeof window.DOMParser != "undefined") {
    parseXml = function(xmlStr) {
        return new window.DOMParser().parseFromString(xmlStr, "text/xml");
    };} else if (typeof window.ActiveXObject != "undefined" &&
       new window.ActiveXObject("Microsoft.XMLDOM")) {
    parseXml = function(xmlStr) {
        var xmlDoc = new window.ActiveXObject("Microsoft.XMLDOM");
        xmlDoc.async = "false";
        xmlDoc.loadXML(xmlStr);
        return xmlDoc;
    };} else {
    throw new Error("No XML parser found");}

一旦你有了Document通过parseXml,您可以使用常用的DOM遍历方法/属性,如childNodesgetElementsByTagName()得到你想要的节点。

示例用法:

var xml = parseXml("<foo>Stuff</foo>");alert(xml.documentElement.nodeName);

如果使用jQuery,则可以使用版本1.5的内置parseXML()方法,该方法在功能上与上面的函数相同。

var xml = $.parseXML("<foo>Stuff</foo>");alert(xml.documentElement.nodeName);


查看完整回答
反对 回复 2019-06-05
  • 3 回答
  • 0 关注
  • 737 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号