使用DOMParser解析XML可以在Chrome中使用,但不能在FF中使用

时间:2014-03-03 00:43:04

标签: javascript xml google-chrome firefox domparser

我正在尝试使用DOMParser从XML获取节点。以下代码适用于Chrome,但不适用于FF。难道我做错了什么?或者,FF做错了什么?这里有一个小提琴:http://jsfiddle.net/lborgman/D8QHT/2/

var zXml = '<?xml version="1.0"?> <div class="csl-bib-body" style="line-height: 2; padding-left: 2em; text-indent:-2em;"> <div class="csl-entry">The Polyvagal Theory.</div> </div>';
var dp = new DOMParser();
var zDom = dp.parseFromString(zXml, "text/xml");
document.getElementById("output").appendChild(document.createTextNode(zDom.nodeValue));
var divCite = zDom.querySelector("div.csl-entry");
console.log(divCite);
document.getElementById("output2").appendChild(document.createTextNode(divCite.innerHTML));

1 个答案:

答案 0 :(得分:4)

尝试解析为text/htmlquerySelector不适用于XML文档,因为XML不理解CSS类。

var zDom = dp.parseFromString(zXml, "text/html");

或者,您可以使用XML和querySelector,但使用您的selector参数更明确:

var divCite = zDom.querySelector("div[class=csl-entry]");

对于nodeValue,我不确定您希望在document对象的属性中看到什么。