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

parsing XML in JavaScript, trying to get elements by classname

本文关键字:元素 获取 JavaScript XML      更新时间:2023-09-26

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

有什么想法吗?

这应该获取给定类的所有元素,假设标记名称是一致的。

var elements = xmlDoc.getElementsByTagName('Example');
var classArray = [];
for(var i=0;i<elements.length;i++){
    if(elements[i].className=="test"){
        classArray.push(elements[i])
}}

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

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

parser = new DOMParser();
xmlDoc = parser.parseFromString(xmlString,"text/html")