您好,
我有一个看起来像这样的xml文件
<?xml version="1.0"?>
<sendSound enable="true" autoPlay="true">
<item name="Gasp for surprise" src="flashsound/gasp.mp3"></item>
<item name="Giggle" src="flashsound/hehe.mp3"></item>
<item name="Say hello" src="flashsound/hello.mp3"></item>
</sendSound>
我想让每个项目都名为NAMES所以它会像这样:
Gasp for surprise
Giggle
Say hello
这是我的代码
var request = new XMLHttpRequest();
request.open("GET", "demo.xml", false);
request.send();
var xml = request.responseXML;
var users = xml.getElementsByTagName("sendSound");
for(var i = 0; i < users.length; i++) {
var user = users[i];
var names = user.getElementsByTagName("item");
for(var j = 0; j < names.length; j++) {
alert(names[j].childNodes[0].getAttribute("name"));
}
}
但我甚至没有得到警报。有什么问题?
谢谢。
答案 0 :(得分:1)
使用DOMParser()
和parser.parseFromString()
解析并松散.childNodes[0]
(将myXml
替换为request.responseXML
)
var myXml = `<?xml version="1.0"?>
<sendSound enable="true" autoPlay="true">
<item name="Gasp for surprise" src="flashsound/gasp.mp3"></item>
<item name="Giggle" src="flashsound/hehe.mp3"></item>
<item name="Say hello" src="flashsound/hello.mp3"></item>
</sendSound>`;
parser = new DOMParser();
var xml = parser.parseFromString(myXml,"text/xml");
var users = xml.getElementsByTagName("sendSound");
for(var i = 0; i < users.length; i++) {
var user = users[i];
var names = user.getElementsByTagName("item");
for(var j = 0; j < names.length; j++) {
console.log(names[j].getAttribute("name"));
}
}