在JavaScript中解析XML,尝试按类名获取元素

时间:2012-05-08 17:53:43

标签: javascript xml domparser

我正在尝试使用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)

有什么想法吗?

3 个答案:

答案 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")