使用javascript获取xml文件的子节点值

时间:2013-03-06 11:47:47

标签: javascript xml

我有一个xml文件,如下所示:

<Factory>
<Limits>
  <Point X="92" Y="489"/>
  <Point X="570" Y="487"/>
  <Point X="570" Y="138"/>
  <Point X="92" Y="140"/>
  <Point X="92" Y="139"/>
</Limits>
<Cells>
  <Cell>
    <Point X="358" Y="138"/>
    <Point X="361" Y="487"/>
    <Point X="570" Y="487"/>
    <Point X="570" Y="138"/>
    <Point X="358" Y="138"/>
  </Cell>
  <Cell>
    <Point X="311" Y="139"/>
    <Point X="311" Y="488"/>
    <Point X="92" Y="489"/>
    <Point X="92" Y="140"/>
    <Point X="311" Y="139"/>
  </Cell>
</Cells>

我正在尝试使用Javascript获取“限制”中的每个“点”的X和Y值(不是“细胞”中的那些)。我看了很多关于getElementByTagName,childNodes的例子,但我无法弄清楚如何获取我正在寻找的数据。 我觉得这样的事情会奏效:

var M = xmlDoc.getElementsByTagName("Limits")[0].childNodes;
for (i=0;i<M.length;i++){
  console.log(M[i].childNodes.item(0));
}

我尝试了一些不同的东西,但我总是以空值或错误结束。

有什么简单的方法可以做我需要的吗?

2 个答案:

答案 0 :(得分:2)

您需要获取属性。使用javascript:

M[i].getAttribute("X");

使用jQuery:

M[i].attr("X");

答案 1 :(得分:0)

var M = xmlDoc.getElementsByTagName("Limits");
for (i = 0; i < M.length; i++){
   for(var j = 0; j < M[i].childNodes.length; j++){
      console.log(M[i].childNodes[j].getAttribute('X'));
      console.log(M[i].childNodes[j].getAttribute('Y'));
   }
}