xml读取同名节点问题  请各位大侠帮忙
xml  :
   <?xml version="1.0" encoding="gb2312" ?>  
<list>
<Total>
   <results>3</results>  
   </Total>
<list>
  <tab>
        <a>1</a>
        <b>2</b>
        <c>3</c>
</tab>
  <tab>
         <a>4</a>
        <b>5</b>
        <c>6</c>
</tab>
</list>
<list>
  <tab_ab>
       <a>1</a>
        <b>2</b>
        <d>3</d>
</tab_ab>
  <tab_ab>
        <a>4</a>
        <b>5</b>
        <d>6</d>
</tab_ab>
</list>
</list>
java代码:
   DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();  
	     DocumentBuilder db = dbf.newDocumentBuilder();  
	     Document document = db.parse(new File("a.xml"));  
	     NodeList list = document.getElementsByTagName("tab");
	     NodeList listscpc = document.getElementsByTagName("tab_ab");
      for(int i=0;i<list.getLength();i++)
	     {		    	
					B b= new B();
					b.setA(document.getElementsByTagName("a").item(i).getFirstChild().getNodeValue());
                                         b.setB(document.getElementsByTagName("b").item(i).getFirstChild().getNodeValue());
                                         b.setC(document.getElementsByTagName("c").item(i).getFirstChild().getNodeValue());					
		     }
	     for(int i=0;i<listscpc.getLength();i++)
	     {		    	
					A a= new A();
					a.setA(document.getElementsByTagName("a").item(i).getFirstChild().getNodeValue());
                                         a.setB(document.getElementsByTagName("b").item(i).getFirstChild().getNodeValue());
                                         a.setD(document.getElementsByTagName("d").item(i).getFirstChild().getNodeValue());					
		     }
问题:
第二个循环会读到第一个循环中去,现在就是不知道怎么指点到节点下面去读,例如:list 只读取tab下面的,请各位赐教
------解决方案--------------------
File f = new File("F:\\a.xml"); 
			DocumentBuilder db = dbf.newDocumentBuilder(); 
			document = db.parse(f);
			Element root = document.getDocumentElement();
			NodeList nl = root.getElementsByTagName("tab_ab");
			for(int i=0; i<nl.getLength(); i++){
				Element e = (Element) nl.item(i);
				System.out.println(e.getTextContent());
			}