2016-04-16 26 views
0

我有一个XML文件“Fixtures”,并且我试图获取“irelandGames”部分中的所有灯具。我可以通过“手动”选择灯具,但肯定有更好的方法,而不是必须真正知道文件中每个项目的确切位置。使用Javascript获取XML文件中节点内的节点

下面是XML文件:

<?xml version="1.0" encoding="utf-8" ?> 

<fixtures> 
    <irelandGames> 
    <md1> 
     <date>13</date> 
     <time>17</time> 
     <location>Stade de France</location> 
     <teams>Ireland V Sweden</teams> 
    </md1> 
    <md2> 
     <date>18</date> 
     <time>14</time> 
     <location>Stade de Bordeaux</location> 
     <teams>Belgium V Ireland</teams> 
    </md2> 
    <md3> 
     <date>22</date> 
     <time>20</time> 
     <location>Stade Pierre Mauroy</location> 
     <teams>Italy V Ireland</teams> 
    </md3> 
    </irelandGames> 

<italyGames> 
    <md1> 
     <date>13</date> 
     <time>20</time> 
     <location>Stade de Lyon</location> 
     <teams>Belgium v Italy</teams> 
    </md1> 
    <md2> 
     <date>17</date> 
     <time>14</time> 
     <location>Stade de Toulouse</location> 
     <teams>Italy V Sweden</teams> 
    </md2> 
    <md3> 
     <date>22</date> 
     <time>20</time> 
     <location>Stade Pierre Mauroy</location> 
     <teams>Italy V Ireland</teams> 
    </md3> 
    </italyGames> 
</fixtures> 

这里是我用来检索爱尔兰灯具代码:

var xmlDoc = xhttp.responseXML; 
var x = xmlDoc.getElementsByTagName("teams"); 
console.log("x: " + x.length); 

var i; 
for (i = 0; i < 3; i++) 
{ 
    irelandMatches.push(x[i].childNodes[0].nodeValue); 
} 

正如你看到的,让我得到意大利的灯具,我可以编码它得到“团队”3至5,但是,这似乎很混乱。有没有办法让它从“爱尔兰游戏”中获取所有“团队”,而不必为每个节点编号。

谢谢。 :)

回答

1

您可以只针对该国的标签才把球队

var xmlDoc = xhttp.responseXML; 

var country = xmlDoc.getElementsByTagName("irelandGames"); 
var teams = country[0].getElementsByTagName("teams"); 

var irelandMatches = []; 

for (var i=0; i<teams.length; i++) { 
    irelandMatches.push(teams[i].childNodes[0].nodeValue); 
} 
+0

我得到这个错误:“类型错误:country.getElementsByTagName不是一个函数” - 什么建议? :) – user3102785

+0

是的,使用'country [0] .getElementsByTagName(“teams”)' – adeneo