2

我正在尝试使用 JavaScript 解析一个大型 XML 文件。网上看了一下,好像最简单的入手方式就是使用浏览器的DOM解析器。这行得通,我可以通过 ID 获取元素。我还可以获得这些元素的“类”属性,它会返回我所期望的。但是,我似乎无法按类获取元素。

在最新的 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)

有任何想法吗?

4

3 回答 3

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])
}}
于 2012-05-08T18:09:17.150 回答
0

您可以使用 JQuery 通过使用类选择器来解析 XML 文件。 http://jquery.com

于 2012-05-08T18:02:42.100 回答
0

将解析器类型更新为 HTML 而不是 XML 应该可以工作。

parser = new DOMParser();
xmlDoc = parser.parseFromString(xmlString,"text/html")
于 2016-12-30T00:47:00.157 回答