我正在尝试使用JavaScript解析大型XML文件。在线查看,似乎最简单的方法是使用浏览器的DOM解析器。这有效,我可以通过ID获取元素。我也可以获得这些元素的“class”属性,并返回我期望的内容。但是,我似乎无法按类获取元素。
在最新的Chrome中尝试了以下内容:
xmlString = '<?xml version="1.0"?>';
xmlString = xmlString + '<example class="test" id="example">content</example>'
parser = new DOMParser();
xmlDoc = parser.parseFromString(xmlString,"text/xml");
xmlDoc.getElementById("example");
// returns the example element (good)
xmlDoc.getElementById("example").getAttribute("class");
// returns "test" (good)
xmlDoc.getElementsByClassName("test");
// returns [] (bad)
有什么想法吗?
答案 0 :(得分:1)
这应该得到给定类的所有元素,假设标记名称是一致的。
var elements = xmlDoc.getElementsByTagName('Example');
var classArray = [];
for(var i=0;i<elements.length;i++){
if(elements[i].className=="test"){
classArray.push(elements[i])
}}
答案 1 :(得分:0)
您可以使用JQuery通过使用类选择器来解析XML文件。 http://jquery.com
答案 2 :(得分:0)
将解析器类型更新为HTML而不是XML应该有效。
parser = new DOMParser();
xmlDoc = parser.parseFromString(xmlString,"text/html")