一个比较笨的办法是你自己去从list取list.get(2);
比较推荐的方法是你用xpath查询,非常方便

解决方案 »

  1.   

    public static void main(String[] args) {
      File file=new File("google.xml");
      SAXBuilder saxb=new SAXBuilder();
      try {
       Document doc=saxb.build(file);
       XPath xpath=XPath.newInstance("//pack[name='pack3']");//新建Xpath实例
       Element el = (Element)xpath.selectSingleNode(doc); //得到name=pack3的element
       //.........
       //然后我就不写了  } catch (JDOMException e) {
       e.printStackTrace();
      } catch (IOException e) {
       e.printStackTrace();
      }
     }呵呵,我也是刚刚xml解析2天,具体的你去查一下Xpath资料,Xpath真是不错的家伙
      

  2.   

    to SAXBuilder saxb=new SAXBuilder();
    SAXBuilder 是哪个类?在java1.5的API上没查到啊
      

  3.   

    to:mlw2000
    我按照你上面写的作了,但是不行啊!
    1、XPath没有你写的那种实现方法(newInstance),我用XPathFactory得到的XPath。
    2、xpath没有selectSingleNode()这种方法阿你能不能写的明白一点啊,把import也写进去。我是java新手。谢谢
      

  4.   

    噢,晚上给你发上去,,
    ps:我是用的jdom和SAX...
    写个dom4j发上去吧
      

  5.   

    import java.io.File;
    import java.io.IOException;
    import java.util.List;import org.jdom.*;
    import org.jdom.input.*;
    import org.jdom.xpath.XPath;public class TestJdom {
    public static void main(String[] args) { SAXBuilder saxb = new SAXBuilder();
    try { Document xmldoc = saxb.build(new File("C:/test.xml")); // 新建Xpath实例
    XPath xpath = XPath.newInstance("/root/pack[name='pack3']");
    // 得到一个list(所有的name=pack3的pack节点)
    List nodes = xpath.selectNodes(xmldoc);
    // 或者直接得到符合条件的第一个节点
    Element el = (Element) xpath.selectSingleNode(xmldoc); System.out.println("name value : " + el.getChildText("name")); } catch (JDOMException e) {
    e.printStackTrace();
    } catch (IOException e) {
    e.printStackTrace();
    }
    }}