问题: 使用 XML 数据通常涉及从动态源将其作为字符串检索。我们如何使用与现代浏览器兼容的 JavaScript 代码来有效地解析和操作这些 XML 数据?
解决方案:
对于浏览器支持DOMParser接口,以下函数提供了简单的XML解析机制:
function parseXml(xmlStr) { return new window.DOMParser().parseFromString(xmlStr, "text/xml"); }
用法示例:
var xml = parseXml('<foo>Stuff</foo>'); console.log(xml.documentElement.nodeName); // Outputs: "foo"
在 DOMParser 不可用的情况下,例如在 Internet Explorer 版本更高的情况下到 8,以下代码片段提供了一个后备使用ActiveXObject:
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"); }
jQuery 版本 1.5 及更高版本包含一个方便的 $.parseXML() 方法,提供类似的功能:
var xml = $.parseXML('<foo>Stuff</foo>'); console.log(xml.documentElement.nodeName); // Outputs: "foo"
以上是如何使用现代和传统浏览器兼容的方法解析 JavaScript 中的动态 XML 字符串?的详细内容。更多信息请关注PHP中文网其他相关文章!