[英]Get attribute from parent node when parsing XML in Javascript
I have an XML similar to this (but less fake, not to reveal the true and boring nature of my hobby projects) 我有一个与此类似的XML(但是伪造的更少,没有透露我的业余项目的真实和无聊的性质)
<day date="2017-01-01">
<event>
<name>Birthday party</name>
<time>18:00</time>
</event>
<event>
<name>Concert</name>
<time>21:00</time>
</event>
</day>
<day date="2017-01-02">
<event>
<name>Debate</name>
<time>12:00</time>
</event>
</day>
I would like the final output to be something like this: 我希望最终输出是这样的:
Birthday party 18:00 2017-01-01
Concert 21:00 2017-01-01
Debate 12:00 2017-01-02
How can I pass the date attribute down to each event, which I'm parsing like this: 我如何将date属性传递给每个事件,我按如下方式进行解析:
var x=xmlDoc.getElementsByTagName("event");
for (i=0;i<x.length;i++) {
document.write(x[i].getElementsByTagName("name")[0].childNodes[0].nodeValue);
document.write(x[i].getElementsByTagName("time")[0].childNodes[0].nodeValue);
}
I know it should be possible to use getAttribute but I'm just not getting it to work properly. 我知道应该可以使用getAttribute,但我只是没有使其正常工作。
You need another for
to iterate a days. 你需要另一个
for
遍历一个天。 Something like this: 像这样:
var days=xmlDoc.getElementsByTagName("day"); for (i=0;i<days.length;i++) { events=xmlDoc.getElementsByTagName("event"); for (j=0;j<events.length;j++) { document.write(events[j].getElementsByTagName("name")[0].childNodes[0].nodeValue); document.write(events[j].getElementsByTagName("time")[0].childNodes[0].nodeValue); document.write(days[i].getElementsByTagName("date")[0].childNodes[0].nodeValue); } }
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.