public static void main(String[] args) {
try {
SAXReader saxReader = new SAXReader(); // 使用SAXReader方式读取XML文件
// 加载数据库XML配置文件,得到Document对象
Document document = saxReader.read(new File("src/csdn.XML"));
Element root = document.getRootElement(); // 获得根节点
// 得到database节点
Element database = (Element) root
.selectSingleNode("//FDBK/FCRCs/FCRC/RCIFs/RCIF");
// List list = database.elements(); // 得到database元素下的子元素集合

List list = root.selectNodes("//FDBK/FCRCs/FCRC/RCIFs/RCIF");
/*
 * 循环遍历集合中的每一个元素 将每一个元素的元素名和值在控制台中打印出来
 */
for (Object obj : list) {
Element element = (Element) obj;
Node node1 = element.selectSingleNode("RCLC");
Node node2 = element.selectSingleNode("RCSG");
System.out.println(node1.getText() + "---" + node2.getText());
// getName()是元素名,getText()是元素值
// Element ele = element.selectSingleNode("//");
// System.out.println(element.getName() + ": " + element.getText());
}
} catch (Exception e) {
e.printStackTrace();
}
}红色部分是我更改的,暂时想到这种方法,我想应该还有更简单的方法的

解决方案 »

  1.   

    public class Test {
    public static void main(String[] args) {
    try {
    SAXReader saxReader = new SAXReader(); 
    Document document = saxReader.read(new File("src/csdn.XML"));
    Element root = document.getRootElement(); 

    List list = root.selectNodes("//FDBK/FCRCs/FCRC/RCIFs/RCIF");
    for (Object obj : list) {
    Element element = (Element) obj;
    Node node1 = element.selectSingleNode("RCLC");
    Node node2 = element.selectSingleNode("RCSG");
    System.out.println(element.getName() + "--" +node1.getText() + "---" + node2.getText());
    }
    } catch (Exception e) {
    e.printStackTrace();
    }
    }
    }
    刚刚的样式不好看,呵呵
      

  2.   

    呵呵!~~谢谢,尤其谢谢huanyouyu!~~
    我自己今天也解决了!
    public static void main(String[] args){
            try{
                SAXReader saxReader = new SAXReader(); //使用SAXReader方式读取XML文件
                //加载数据库XML配置文件,得到Document对象
                Document document = saxReader.read(new File("src/20090105111656.XML")); 
                Element root = document.getRootElement(); //获得根节点
                Element database = (Element)root.selectSingleNode("//FDBK/FCRCs");
                
                int num = -1;
                for (Iterator iter = database.elementIterator(); iter.hasNext();) {
                    Element element = (Element) iter.next();
                    num++;
                    for (Iterator iterIn = element.elementIterator(); iterIn.hasNext();) {
                        Element elementIn = (Element) iterIn.next();
                        for (Iterator iterInner = elementIn.elementIterator(); iterInner.hasNext();) {
                            Element elementInner = (Element) iterInner.next();
                            Iterator iter_Inner = elementInner.elementIterator();    
                            Element element_Inner = (Element) iter_Inner.next();
                            System.out.println(element_Inner.getName()+": "+element_Inner.getText());
                        }
                    }
                }
               }catch(Exception e){
                e.printStackTrace();
            }
        }
    执行结果是:
    RCLC: HVTR/CATIs/CATI[@seqno="3"]/
    RCLC: HVTR/CATIs/CATI[@seqno="3"]/
    RCLC: HVTR/CATIs/CATI[@seqno="3"]/
    RCLC: HVTR/CATIs/CATI[@seqno="6"]/
    RCLC: HVTR/CATIs/CATI[@seqno="6"]/
    RCLC: HVTR/CATIs/CATI[@seqno="6"]/