$.parseXML()将合法XML字符串解析为原生XML Document对象,需用$()包装后才能使用jQuery方法操作,解析失败会抛异常,须try-catch捕获。
jQuery 的 $.parseXML() 方法用于将格式良好的 XML 字符串解析为可用的 XML 文档对象(Document),方便后续用 jQuery 或原生 DOM 方法遍历和操作。
该方法只接受符合 XML 语法的字符串,返回一个标准的 XML Document 对象(不是 jQuery 对象)。如果字符串格式错误,会抛出异常,需用 try-catch 捕获。
解析得到 XML 文档后,可传给 $() 包装,再用 jQuery 方法操作(注意:需指定上下文或用 .find() 等方法)。
var xmlStr = ''; var xmlDoc = $.parseXML(xmlStr); var $xml = $($xmlDoc); // 包装成 jQuery 对象 $xml.find('item').each(function() { var id = $(this).attr('id'); var text = $(this).text(); console.log(id + ': ' + text); // 输出 "1: 苹果", "2: 香蕉" }); - 苹果
- 香蕉
实际使用中容易踩坑,尤其在跨浏览器或处理响应时:
dataType: 'xml',jQuery 会自动调用 $.parseXML()
$(),那会当成 HTML 解析,导致结构错乱$.parseXML() 内部做了兼容处理,但建议测试现代浏览器支持原生 DOMParser,更轻量且不依赖 jQuery:
var parser = new DOMParser(); var xmlDoc = parser.parseFromString(xmlStr, 'text/xml'); // 后续操作方式类似,$($xmlDoc) 仍可用
不过 $.parseXML() 在低版本 IE 中
更稳妥,内部已封装兼容逻辑。
基本上就这些。核心就三点:字符串要合法、解析后记得包装、查找前确认上下文。不复杂但容易忽略细节。