试图在JavaScript中解析XML中的所有数据

时间:2018-05-30 19:39:31

标签: javascript xml

尝试加载和解析一些XML数据:

<image name='image1' xsize='200' ysize='100'>
  <solidcolor startxy='0,0' endxy='50,75' color='0072ff'>
    <text startxy='50,50' endxy='150,70' color='000000' size='12'>text to print</text>
</image>
<image name='image2' xsize='200' ysize='100'>
  <img src='background.jpg' startxy='0,0' endxy='200,100'>
  <text startxy='50,50' endxy='150,70' color='000000' size='12'>text to print</text>
  <text startxy='0,0' endxy='150,20' color='000000' size='12'></text>
</image>

以下代码有效,但我无法获取所有数据,如'name','xsize'或&lt;&gt;之间的任何其他数据。此外,如果标签之间没有任何内容,它将崩溃,如果没有结束标签,它将崩溃。我是JavaScript的新手,但HTML可以做到这一切,所以我认为JavaScript也可以吗?

var x, i, xmlDoc;
var txt = "";
var text = "<book>" +
  "<title size='1'>Everyday Italian</title>" +
  "<text style='1'></text>" +
  "<author>Giada De Laurentiis</author>" +
  "<year>2005</year>" +
  "</book>";

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

// documentElement always represents the root node
x = xmlDoc.documentElement.childNodes;
for (i = 0; i < x.length; i++) {
  txt += x[i].nodeName + ": " + x[i].childNodes[0].nodeValue + "<br>";
}
document.getElementById("demo").innerHTML = txt;
<p id="demo"></p>

1 个答案:

答案 0 :(得分:1)

您可以通过attributes属性访问节点上的属性:

示例:

xmlDoc.documentElement.childNodes[1].attributes.style.value

这会给你“1”

在chrome控制台中进行实验并检查可用的属性。