XML文件- <buyfree>
  <freePrdID>103140</freePrdID> 
  <kind>2</kind> 
  <sum>3</sum> 
  <similar>1</similar> 
  <prdName>李宁ABSE456-1羽毛球双肩包(带有独立束口式鞋袋)</prdName> 
  <smallPic>20115/2011051964133965.jpg</smallPic> 
  <price0>239</price0> 
- <exPrd> 
 - <Similar>
   <prdID>103135</prdID> 
   <smallpic>20115/2011051763879677.jpg</smallpic> 
   <prdName>李宁ABJE034-2三支装羽毛球包(白金款)</prdName> 
   <price0>249</price0> 
   </Similar>
 - <Similar>
  ....
   <Similar>
   ...
   </exPrd></buyfree>.......
....
注意红色的exPrd节点根据客户需要,有时会生成此节点,有时不会IE下面的方法就不用了
FF下面请教下如何判断此节是否存在,如果存在就读取
我的代码 var xml=http_request.responseXML;
var nodes=xml.getElementsByTagName("buyfree");
......
for(var i=0;i<nodes.length;i++)
{
var pnodes=nodes[i].getElementsByTagName("exPrd/Similar");这里提示PNODES的值为 object HTMLCollection请指点下,谢谢!

解决方案 »

  1.   

    for(var i = 0; i < nodes.length ; i ++)
    {
       var pnodes=nodes[i].getElementsByTagName("Similar");
       for(var j = 0 ; j < pnodes.length ; j ++)
       {
          alert(pnodes[j])
       }
       
    }
      

  2.   


    ie下可以呢
    FF貌似不行
      

  3.   

    本帖最后由 net_lover 于 2011-11-02 14:01:18 编辑
      

  4.   

    前提条件是 buyfree 这个节点也有很多个,
    exprd 结点里面的属性对父节点buyfree是有用的
      

  5.   


    差不多解决了,谢谢,请教个问题XML- <SpecBase diType="4864">
    - <Spec>
      <diType>4864</diType> 
      <diCode>10</diCode> 
      <diName>直拍CS柄</diName> 
      <Exname>手柄</Exname> 
      </Spec>
    - <Spec>
      <diType>4864</diType> 
      <diCode>11</diCode> 
      <diName>横拍FL柄</diName> 
      <Exname>手柄</Exname> 
      </Spec>
      </SpecBase>在FF下计算SpecBasep这个节点的长度的时候,显示长度为3
    其他的有的显示长度正常
    这是为什么?