0

我遇到了 ajax 和 xml 的问题。我有一个 xml 文件,其中涵盖了几个按钮的状态。所以现在在我的网页中,我想检查每个按钮的实际状态。这是xml文件:

<?xml version="1.0" encoding="utf-8"?>
<btn_status>
    <btn1>
        <titel>Button 1</titel>
        <status>inactive</status>
    </btn1>

    <btn2>
        <titel>Button 2</titel>
        <status>active</status>
    </btn2>

</btn_status>

我的 ajax 脚本看起来像这样。

document.write("<p>Status der Buttons</p>");
document.write("<table border='1'>");
var xmlContent=xmlDoc.getElementsByTagName("btn1");
for (i=0;i<xmlContent.length;i++)
  {
  document.write("<tr><td>");
  document.write(xmlContent[i].getElementsByTagName("titel")[0].childNodes[0].nodeValue);
  document.write("</td><td>");
  document.write(xmlContent[i].getElementsByTagName("status")[0].childNodes[0].nodeValue );
    if(btnStatus1=xmlDoc.getElementsByTagName("status")[0].childNodes[0].nodeValue == 'active'){
      document.write("<img src='Normal.png' />");
    }
      else  // ie5/6
  {
      document.write("<img src='error.png' />");
  }
    document.write("</td></tr>");
  }

现在的问题是,if/else 只涵盖 btn1 的状态,而不是其他的,现在我不知道如何质疑 btn2 和以下的状态。就像是

btnStatus2=btn2.status...

任何人都有一个想法:/

4

1 回答 1

0

sry 自己解决了,只需要找到子元素...

if(btnStatus2=xmlDoc.getElementsByTagName("status")[1].childNodes[0].nodeValue == 'active'){
      document.write("<img src='Normal.png' />");
    }
      else  // ie5/6
  {
      document.write("<img src='error.png' />");
  }
    document.write("</td></tr>");
  }

对于第三个条目:

var xmlContent=xmlDoc.getElementsByTagName("btn3");
for (i=0;i<xmlContent.length;i++)
  {
  document.write("<tr><td>");
  document.write(xmlContent[i].getElementsByTagName("titel")[0].childNodes[0].nodeValue);
  document.write("</td><td>");
  document.write(xmlContent[i].getElementsByTagName("status")[0].childNodes[0].nodeValue );
    if(btnStatus3=xmlDoc.getElementsByTagName("status")[2].childNodes[0].nodeValue == 'active'){
      document.write("<img src='Normal.png' />");
    }
      else  // ie5/6
  {
      document.write("<img src='error.png' />");
  }
    document.write("</td></tr>");
  }
于 2013-08-30T12:02:36.157 回答