以文本方式查看主题

-  中文XML论坛 - 专业的XML技术讨论区  (http://bbs.xml.org.cn/index.asp)
--  『 DOM/SAX/XPath 』  (http://bbs.xml.org.cn/list.asp?boardid=11)
----  [求助]高手帮忙,一个XML取节点的问题!  (http://bbs.xml.org.cn/dispbbs.asp?boardid=11&rootid=&id=44183)


--  作者:冰麟
--  发布时间:3/21/2007 9:41:00 AM

--  [求助]高手帮忙,一个XML取节点的问题!
<?xml version="1.0" encoding="gb2312"?><TypeList><type><id>184</id><name><![CDATA[横向配件及其他]]></name><habitus><![CDATA[]]></habitus><fittinglist><fitting><id>1374</id><name><![CDATA[润滑油]]></name><habitus><![CDATA[]]></habitus></fitting><fitting><id>1375</id><name><![CDATA[汽车轴承]]></name><habitus><![CDATA[]]></habitus></fitting><fitting><id>1377</id><name><![CDATA[油管胶管]]></name><habitus><![CDATA[]]></habitus></fitting><fitting><id>1378</id><name><![CDATA[塑料件]]></name><habitus><![CDATA[]]></habitus></fitting><fitting><id>1379</id><name><![CDATA[粘结剂]]></name><habitus><![CDATA[]]></habitus></fitting><fitting><id>1380</id><name><![CDATA[密封胶]]></name><habitus><![CDATA[]]></habitus></fitting><fitting><id>1381</id><name><![CDATA[随车工具]]></name><habitus><![CDATA[]]></habitus></fitting><fitting><id>1383</id><name><![CDATA[汽车弹簧]]></name><habitus><![CDATA[]]></habitus></fitting></fittinglist></type><type><id>185</id><name><![CDATA[车身附件]]></name><habitus><![CDATA[]]></habitus><fittinglist><fitting><id>1373</id><name><![CDATA[安全带]]></name><habitus><![CDATA[]]></habitus></fitting><fitting><id>1365</id><name><![CDATA[雨刮器]]></name><habitus><![CDATA[]]></habitus></fitting><fitting><id>1368</id><name><![CDATA[汽车空调]]></name><habitus><![CDATA[]]></habitus></fitting><fitting><id>1370</id><name><![CDATA[安全气囊]]></name><habitus><![CDATA[]]></habitus></fitting></fittinglist></type></TypeList>

js 如下:
    var Dom= originalRequest.responseXML;
    var typenodes=Dom.getElementsByTagName("type");
    var str="<li class=\"leftmune_title\">配件分类</li>";
    if(typenodes.length>0)
    {
        for(var i=0;i<typenodes.length;i++)
        {
            var nodes=typenodes[i];
            str=str+"<li class=\"leftmune_class\"><span>"+nodes.childNodes[1].firstChild.nodeValue+"</span></li>";
            str=str+"<li class=\"leftmune_list\">";
            if(fittingnodes.length>0)
            {
                 中间这里想取的是每次循环第一个type节点中的fittinglist节点中所有fitting节点下面的名字和ID。该怎么写啊,因为我如果用var fittingnodes=Dom.getElementsByTagName("fitting");的话会把所有fitting的节点取出,但我只想在循环时每一个TYPE里面的fitting.高手帮忙啊。希望写法是能在FIREFOX和IE下运行的。
            }
            str=str+"</li>";
            
            
        }
    }
    $("bgSilver").innerHTML=str;


--  作者:Qr
--  发布时间:3/22/2007 11:39:00 AM

--  
大概思路就是这样子了,没有测试,自己改吧。
fittingnodes = nodes.childNodes[3];
if(fittingnodes.length>0)
{
for(var j=0;j<fittingnodes.length;j++){
alert(fittingnodes.childNodes[1].firstChild.nodeValue)
}
}
W 3 C h i n a ( since 2003 ) 旗 下 站 点
苏ICP备05006046号《全国人大常委会关于维护互联网安全的决定》《计算机信息网络国际联网安全保护管理办法》
62.500ms