以下是一个XML文件:
<?xml version="1.0" encoding="gb2312"?>
<ROOT ver="1.0" type="schinese">
  <RELEASETIME date="2008-05-28 20:00:00" />
  <STATION ID="54511" NAME="北京" PROVINCE="北京" DISTRICT="北京" TELCODE="010" POSTCODE="100081" LONGITUDE="116.28" LATITUDE="39.48" ALTITUDE="32">
    <FORECASTINFO>
      <FORECASTDATA DATE="2008-05-29" BWEA="浮尘" EWEA="晴" BWD="北风" EWD="北风" BWS="4-5级" EWS="4-5级" TMAX="24" TMIN="16" />
      <FORECASTDATA DATE="2008-05-30" BWEA="晴" EWEA="晴" BWD="北风" EWD="北风" BWS="4-5级" EWS="3-4级" TMAX="31" TMIN="14" />
      <FORECASTDATA DATE="2008-05-31" BWEA="多云" EWEA="阴" BWD="无风向" EWD="无风向" BWS="微风" EWS="微风" TMAX="27" TMIN="18" />
    </FORECASTINFO>
    <INDEXINFO>
      <INDEXDATA DATE="2008-05-29" CT_N="温凉"/>
    </INDEXINFO>
  </STATION>
</ROOT>现在想用DOM解析,将FORECASTDATA 里面的DATE 和 BWEA的属性值提出(打印出来)。本人弄了三天都没有弄出来。求大师帮助。在此万分感激。 

解决方案 »

  1.   

    就是一层一层的解析下去就行了。没啥特殊的。
    楼主记得结贴,你发了4个帖子,一个都没有结贴呢!!    File file = new File("1.xml");
        SAXBuilder builder = new SAXBuilder();
        Reader in = new FileReader(file);
        Document doc = builder.build(in);
        Element root = doc.getRootElement(); //<ROOT
        List ls = root.getChildren();// <RELEASETIME  和 <STATION 
        // 我们用第二个
        Element station = (Element)ls.get(1);
        // <FORECASTINFO> //  <INDEXINFO>
        List lsFI = station.getChildren();
        // 我们要第一个
        Element fi = (Element)lsFI.get(0);
        
        // FORECASTDATA
        List data = fi.getChildren();
        // 循环
        for(Object o : data) {
          Element d = (Element)o;
          System.out.println(d.getAttributeValue("DATE")+"/"+d.getAttributeValue("BWEA"));
        }
      

  2.   

    原文:http://www.java2000.net/viewthread.jsp?tid=6261
      

  3.   

    我自己研究了半天,看看帮助文档(研究清楚了才看得,才发觉自己傻。浪费时间)
    document是最上层节点
    下面才是根节点root
    在下面有子节点:一种是第一的(如<ORECASTINFO> )
    一种是空白,即文本节点(注意),比如回车环航
    打字真累
      

  4.   

    多看哈基础知识
    呵呵!小菜鸟来报道了!!!送大伙一份小礼!请大家多多关照!好好的视频哦!
    全部免费哦!!!找了N久才找到的!好东西与大伙一起分享!大家顶一下!
    《J2EE 课程视频教程》赛迪网校罗泽彬老师主讲
    http://www.beifengkd.com/read.php?tid=886&u=9616
    《张孝祥JAVA视频教程》完整版[RMVB]
    http://www.beifengkd.com/read.php?tid=422&u=9616
    尚学堂148班高清晰版本Hibernate(王勇主讲)---共40集
    http://www.beifengkd.com/read.php?tid=1338&u=9616
    新东方J2ee系列
    http://www.beifengkd.com/read.php?tid=531&u=9616
    树人J2EE高级框架实战教学(视频教程)郭克华
    http://www.beifengkd.com/read.php?tid=620&u=9616
    MLDN J2EE 开发视频(共54讲)
    http://www.beifengkd.com/read.php?tid=443&u=9616
    北大青鸟 Asp.net 视频(主讲:于海涛)共32 讲
    http://www.beifengkd.com/read.php?tid=475&u=9616
    达内anyfo--EJB视频第一集发布!!
    http://www.beifengkd.com/read.php?tid=1329&u=9616
    郭克华J2ME
    http://www.beifengkd.com/read.php?tid=241&u=9616http://www.beifengkd.com/read.php?tid=216&u=9616
    oracle10g快捷版使用视频
    http://www.beifengkd.com/read.php?tid=996&u=9616
      

  5.   


    Exception in thread "main" org.jdom.JDOMException: SAX2 driver class org.apache.xerces.parsers.SAXParser not found: SAX2 driver class org.apache.xerces.parsers.SAXParser not found
    at org.jdom.input.SAXBuilder.build(SAXBuilder.java:323)
    at org.jdom.input.SAXBuilder.build(SAXBuilder.java:411)
    at cn.umessage.asang.xml.Test.main(Test.java:23)
    Root cause: java.lang.ClassNotFoundException: org.apache.xerces.parsers.SAXParser
    at org.xml.sax.helpers.XMLReaderFactory.loadClass(Unknown Source)
    at org.xml.sax.helpers.XMLReaderFactory.createXMLReader(Unknown Source)
    at org.jdom.input.SAXBuilder.build(SAXBuilder.java:237)
    at org.jdom.input.SAXBuilder.build(SAXBuilder.java:411)
    at cn.umessage.asang.xml.Test.main(Test.java:23)
    报这样异常~~~java2000_net的代码好像有点问题
      

  6.   

    你引入org.apache.xerces.parsers.SAXParser了吗?根本就没找到啊
      

  7.   

    /**
     * <p>Title: </p>
     *
     * <p>Description: </p>
     *
     * <p>Copyright: Copyright (c) 2008</p>
     *
     * <p>Company: </p>
     *
     * @author not attributable
     * @version 1.0
     */
    import java.io.File;
    import org.dom4j.Document;
    import org.dom4j.io.SAXReader;
    import org.dom4j.Element;
    import java.util.Iterator;public class Test {
        public Test() {    }    public static void pirntXML(String fileName) {
            Document doc = null;
            try {
                SAXReader saxReader = new SAXReader();
                // 取xml文件
                doc = saxReader.read(new File(fileName));
            } catch (Exception e) {
                System.out.println(e.getLocalizedMessage());
            }        // 循环获取STATION下的子节点
            for (Iterator i = doc.getRootElement().element("STATION").
                              elementIterator("FORECASTINFO"); i.hasNext(); ) {            Element object = (Element) i.next();
                // 获取FORECASTINFO下的子节点
                for (Iterator j = object.elementIterator("FORECASTDATA"); j.hasNext(); ) {
                    Element param = (Element) j.next();                String date = param.attributeValue("DATE");
                    String bwea = param.attributeValue("BWEA");
                    System.out.println("DATE :" + date + " / BWEA :" + bwea);
                }
            }
        }
        public static void main(String[] args) {
            Test.pirntXML("E:\\jbprojects-learn\\NioTest\\L.xml");
        }
    }
    注意:请引入这个包:dom4j-1.6.1.jar
      

  8.   

    此回复为自动发出,仅用于显示而已,并无任何其他特殊作用
    楼主截止到2008-06-18 01:08:49的汇总数据:
    发帖数:4
    结贴数:0
    结贴率: 0.00%
    如何结贴请参考这里:http://topic.csdn.net/u/20080501/09/ef7ba1b3-6466-49f6-9d92-36fe6d471dd1.html
      

  9.   

    夜深了,无心睡眠,温习一下。请引入包:dom4j-1.6.1.jar/**
     * <p>Title: </p>
     *
     * <p>Description: </p>
     *
     * <p>Copyright: Copyright (c) 2008</p>
     *
     * <p>Company: </p>
     *
     * @author not attributable
     * @version 1.0
     */
    import java.io.File;
    import org.dom4j.Document;
    import org.dom4j.io.SAXReader;
    import org.dom4j.Element;
    import java.util.Iterator;public class Test {
        public Test() {    }    public static void pirntXML(String fileName) {
            Document doc = null;
            try {
                SAXReader saxReader = new SAXReader();
                // 取xml文件
                doc = saxReader.read(new File(fileName));
            } catch (Exception e) {
                System.out.println(e.getLocalizedMessage());
            }        // 循环获取STATION下的子节点
            for (Iterator i = doc.getRootElement().element("STATION").
                              elementIterator("FORECASTINFO"); i.hasNext(); ) {            Element object = (Element) i.next();
                // 获取FORECASTINFO下的子节点
                for (Iterator j = object.elementIterator("FORECASTDATA"); j.hasNext(); ) {
                    Element param = (Element) j.next();                String date = param.attributeValue("DATE");
                    String bwea = param.attributeValue("BWEA");
                    System.out.println("DATE :" + date + " / BWEA :" + bwea);
                }
            }
        }
        public static void main(String[] args) {
            Test.pirntXML("E:\\jbprojects-learn\\NioTest\\L.xml");
        }
    }