使用Javascript在XML文件中的节点内获取节点

时间:2016-04-16 18:03:40

标签: javascript xml

我有一个XML文件," Fixtures",我正试图获得" irelandGames"中的所有灯具。部分。我可以通过手动'选择灯具,但肯定有更好的方法,而不是我必须真正知道文件中每个项目的确切位置。

这是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);
}

正如你所看到的,为了让我能够获得意大利的固定装置,我可以将它编码为#34;团队&#34;然而,3到5,这似乎非常混乱。有没有办法让它检索所有&#34;团队&#34;来自,喜欢&#34;爱尔兰游戏&#34;而不是必须为每个节点编号。

感谢。 :)

1 个答案:

答案 0 :(得分: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);
}