¹ÈËÑIT·þÎñ   ¼¼ÊõÎÄÕÂ
Ê×Ò³ | ÌØ»ÝÌ×²Í | ÓòÃûÉêÇë | Ö÷»ú¿Õ¼ä | ÆóÒµGÓÊÏä | ÍøÕ¾½¨Éè | ÍøÕ¾ÍÆ¹ã | ÓʾÖϵͳ | ¹ÈËÑÈí¼þ | ¹ÈËÑÍÆ¹ã
ÌØ

±ð

ÍÆ

¼ö
  ÄúËùÔÚµÄλÖà |  Ïà¹Ø¼¼ÊõÎÄÕ ->  Java/J2EE/JSP ->  ÕýÎÄ
ËÄÖÖxml½âÎö¼¼ÊõÖ®²»ÍêÈ«²âÊÔ
http://www.aguso.com¡¡2007-11-18 03:10:42¡¡¹ÈËÑIT·þÎñ
  GoogleÌṩµÄ¹ã¸æ

    ÔÚÆ½Ê±¹¤×÷ÖУ¬ÄÑÃâ»áÓöµ½°Ñ XML ×÷ΪÊý¾Ý´æ´¢¸ñʽ¡£Ãæ¶ÔĿǰÖÖÀà·±¶àµÄ½â¾ö·½°¸£¬Äĸö×îÊʺÏÎÒÃÇÄØ£¿ÔÚÕâÆªÎÄÕÂÖУ¬ÎÒ¶ÔÕâËÄÖÖÖ÷Á÷·½°¸×öÒ»¸ö²»ÍêÈ«ÆÀ²â£¬½ö½öÕë¶Ô±éÀú XML Õâ¿éÀ´²âÊÔ£¬ÒòΪ±éÀú XML Êǹ¤×÷ÖÐʹÓÃ×î¶àµÄ£¨ÖÁÉÙÎÒÈÏΪ£©¡£


Ô¤ ±¸

    ²âÊÔ»·¾³£º
    AMD ¶¾Áú1.4G OC 1.5G¡¢256M DDR333¡¢Windows2000 Server SP4¡¢Sun JDK 1.4.1+Eclipse 2.1+Resin 2.1.8£¬ÔÚ Debug ģʽϲâÊÔ¡£
   
    XML Îļþ¸ñʽÈçÏ£º
    <?xml version="1.0" encoding="GB2312"?>
      <RESULT>
        <VALUE>
          <NO>A1234</NO>
          <ADDR>ËÄ´¨Ê¡XXÏØXXÕòXX·X¶ÎXXºÅ</ADDR>
        </VALUE>
        <VALUE>
          <NO>B1234</NO>
          <ADDR>ËÄ´¨Ê¡XXÊÐXXÏçXX´åXX×é</ADDR>
        </VALUE>
      </RESULT>

    ²âÊÔ·½·¨£º
    ²ÉÓà JSP ¶Ëµ÷ÓÃBean£¨ÖÁÓÚΪʲô²ÉÓÃJSPÀ´µ÷Óã¬Çë²Î¿¼£ºhttp://blog.csdn.net/rosen/archive/2004/10/15/138324.aspx£©£¬ÈÃÿһÖÖ·½°¸·Ö±ð½âÎö10K¡¢100K¡¢1000K¡¢10000KµÄ XML Îļþ£¬¼ÆËãÆäÏûºÄʱ¼ä£¨µ¥Î»:ºÁÃ룩¡£
   
    JSP Îļþ£º
    <%@ page contentType="text/html; charset=gb2312" %>
    <%@ page import="com.test.*"%>

    <html>
        <body>
        <%
            String args[]={""};
            MyXMLReader.main(args);
        %>
        </body>
    </html>


²â ÊÔ


    Ê×Ïȳö³¡µÄÊÇ DOM£¨JAXP Crimson ½âÎöÆ÷£©   

    DOM ÊÇÓÃÓëÆ½Ì¨ºÍÓïÑÔÎ޹صķ½Ê½±íʾ XML ÎĵµµÄ¹Ù·½ W3C ±ê×¼¡£DOM ÊÇÒÔ²ã´Î½á¹¹×éÖ¯µÄ½Úµã»òÐÅϢƬ¶ÏµÄ¼¯ºÏ¡£Õâ¸ö²ã´Î½á¹¹ÔÊÐí¿ª·¢ÈËÔ±ÔÚÊ÷ÖÐѰÕÒÌØ¶¨ÐÅÏ¢¡£·ÖÎö¸Ã½á¹¹Í¨³£ÐèÒª¼ÓÔØÕû¸öÎĵµºÍ¹¹Ôì²ã´Î½á¹¹£¬È»ºó²ÅÄÜ×öÈκι¤×÷¡£ÓÉÓÚËüÊÇ»ùÓÚÐÅÏ¢²ã´ÎµÄ£¬Òò¶ø DOM ±»ÈÏΪÊÇ»ùÓÚÊ÷»ò»ùÓÚ¶ÔÏóµÄ¡£DOM ÒÔ¼°¹ãÒåµÄ»ùÓÚÊ÷µÄ´¦Àí¾ßÓм¸¸öÓŵ㡣Ê×ÏÈ£¬ÓÉÓÚÊ÷ÔÚÄÚ´æÖÐÊdz־õģ¬Òò´Ë¿ÉÒÔÐÞ¸ÄËüÒÔ±ãÓ¦ÓóÌÐòÄܶÔÊý¾ÝºÍ½á¹¹×÷³ö¸ü¸Ä¡£Ëü»¹¿ÉÒÔÔÚÈκÎʱºòÔÚÊ÷ÖÐÉÏϵ¼º½£¬¶ø²»ÊÇÏñ SAX ÄÇÑùÊÇÒ»´ÎÐԵĴ¦Àí¡£DOM ʹÓÃÆðÀ´Ò²Òª¼òµ¥µÃ¶à¡£
   
    ÁíÒ»·½Ã棬¶ÔÓÚÌØ±ð´óµÄÎĵµ£¬½âÎöºÍ¼ÓÔØÕû¸öÎĵµ¿ÉÄܺÜÂýÇҺܺÄ×ÊÔ´£¬Òò´ËʹÓÃÆäËûÊÖ¶ÎÀ´´¦ÀíÕâÑùµÄÊý¾Ý»á¸üºÃ¡£ÕâЩ»ùÓÚʼþµÄÄ£ÐÍ£¬±ÈÈç SAX¡£

    BeanÎļþ£º
    package com.test;

    import java.io.*;
    import java.util.*;
    import org.w3c.dom.*;
    import javax.xml.parsers.*;

    public class MyXMLReader{

        public static void main(String arge[]){
            long lasting =System.currentTimeMillis();
            try{  
                File f=new File("data_10k.xml");
                DocumentBuilderFactory factory=DocumentBuilderFactory.newInstance();
                DocumentBuilder builder=factory.newDocumentBuilder();
                Document doc = builder.parse(f);
                NodeList nl = doc.getElementsByTagName("VALUE");
                for (int i=0;i<nl.getLength();i++){
                    System.out.print("³µÅƺÅÂë:" +  doc.getElementsByTagName("NO").item(i).getFirstChild().getNodeValue());
                    System.out.println(" ³µÖ÷µØÖ·:" + doc.getElementsByTagName("ADDR").item(i).getFirstChild().getNodeValue());
                }
            }catch(Exception e){
                e.printStackTrace();
            }
            System.out.println("ÔËÐÐʱ¼ä£º"+(System.currentTimeMillis() - lasting)+" ºÁÃë");
        }
    }

      10kÏûºÄʱ¼ä£º265 203 219 172
    100kÏûºÄʱ¼ä£º9172 9016 8891 9000
  1000kÏûºÄʱ¼ä£º691719 675407 708375 739656
10000kÏûºÄʱ¼ä£ºOutOfMemoryError


    ½Ó×ÅÊÇ SAX
   
    ÕâÖÖ´¦ÀíµÄÓŵã·Ç³£ÀàËÆÓÚÁ÷ýÌåµÄÓŵ㡣·ÖÎöÄܹ»Á¢¼´¿ªÊ¼£¬¶ø²»ÊǵȴýËùÓеÄÊý¾Ý±»´¦Àí¡£¶øÇÒ£¬ÓÉÓÚÓ¦ÓóÌÐòÖ»ÊÇÔÚ¶ÁÈ¡Êý¾Ýʱ¼ì²éÊý¾Ý£¬Òò´Ë²»ÐèÒª½«Êý¾Ý´æ´¢ÔÚÄÚ´æÖС£Õâ¶ÔÓÚ´óÐÍÎĵµÀ´ËµÊǸö¾Þ´óµÄÓŵ㡣ÊÂʵÉÏ£¬Ó¦ÓóÌÐòÉõÖÁ²»±Ø½âÎöÕû¸öÎĵµ£»Ëü¿ÉÒÔÔÚij¸öÌõ¼þµÃµ½Âú×ãʱֹͣ½âÎö¡£Ò»°ãÀ´Ëµ£¬SAX »¹±ÈËüµÄÌæ´úÕß DOM ¿ìÐí¶à¡£

    Ñ¡Ôñ DOM »¹ÊÇÑ¡Ôñ SAX £¿

    ¶ÔÓÚÐèÒª×Ô¼º±àд´úÂëÀ´´¦Àí XML ÎĵµµÄ¿ª·¢ÈËÔ±À´Ëµ£¬Ñ¡Ôñ DOM »¹ÊÇ SAX ½âÎöÄ£ÐÍÊÇÒ»¸ö·Ç³£ÖØÒªµÄÉè¼Æ¾ö²ß¡£
    DOM ²ÉÓý¨Á¢Ê÷ÐνṹµÄ·½Ê½·ÃÎÊ XML Îĵµ£¬¶ø SAX ²ÉÓõÄʼþÄ£ÐÍ¡£
    DOM ½âÎöÆ÷°Ñ XML Îĵµ×ª»¯ÎªÒ»¸ö°üº¬ÆäÄÚÈݵÄÊ÷£¬²¢¿ÉÒÔ¶ÔÊ÷½øÐбéÀú¡£Óà DOM ½âÎöÄ£Ð͵ÄÓŵãÊDZà³ÌÈÝÒ×£¬¿ª·¢ÈËÔ±Ö»ÐèÒªµ÷Óý¨Ê÷µÄÖ¸ÁȻºóÀûÓÃnavigation APIs·ÃÎÊËùÐèµÄÊ÷½ÚµãÀ´Íê³ÉÈÎÎñ¡£¿ÉÒÔºÜÈÝÒ×µÄÌí¼ÓºÍÐÞ¸ÄÊ÷ÖеÄÔªËØ¡£È»¶øÓÉÓÚʹÓà DOM ½âÎöÆ÷µÄʱºòÐèÒª´¦ÀíÕû¸ö XML Îĵµ£¬ËùÒÔ¶ÔÐÔÄܺÍÄÚ´æµÄÒªÇó±È½Ï¸ß£¬ÓÈÆäÊÇÓöµ½ºÜ´óµÄ XML ÎļþµÄʱºò¡£ÓÉÓÚËüµÄ±éÀúÄÜÁ¦£¬DOM ½âÎöÆ÷³£ÓÃÓÚ XML ÎĵµÐèҪƵ·±µÄ¸Ä±äµÄ·þÎñÖС£
    SAX ½âÎöÆ÷²ÉÓÃÁË»ùÓÚʼþµÄÄ£ÐÍ£¬ËüÔÚ½âÎö XML ÎĵµµÄʱºò¿ÉÒÔ´¥·¢Ò»ÏµÁеÄʼþ£¬µ±·¢ÏÖ¸ø¶¨µÄtagµÄʱºò£¬Ëü¿ÉÒÔ¼¤»îÒ»¸ö»Øµ÷·½·¨£¬¸æË߸÷½·¨Öƶ¨µÄ±êÇ©ÒѾ­ÕÒµ½¡£SAX ¶ÔÄÚ´æµÄÒªÇóͨ³£»á±È½ÏµÍ£¬ÒòΪËüÈÿª·¢ÈËÔ±×Ô¼ºÀ´¾ö¶¨ËùÒª´¦ÀíµÄtag¡£ÌرðÊǵ±¿ª·¢ÈËÔ±Ö»ÐèÒª´¦ÀíÎĵµÖÐËù°üº¬µÄ²¿·ÖÊý¾Ýʱ£¬SAX ÕâÖÖÀ©Õ¹ÄÜÁ¦µÃµ½Á˸üºÃµÄÌåÏÖ¡£µ«Óà SAX ½âÎöÆ÷µÄʱºò±àÂ빤×÷»á±È½ÏÀ§ÄÑ£¬¶øÇÒºÜÄÑͬʱ·ÃÎÊͬһ¸öÎĵµÖеĶദ²»Í¬Êý¾Ý¡£
   
    BeanÎļþ£º
    package com.test;
    import org.xml.sax.*;
    import org.xml.sax.helpers.*;
    import javax.xml.parsers.*;

    public class MyXMLReader extends DefaultHandler {

        java.util.Stack tags = new java.util.Stack();

        public MyXMLReader() {
            super();
        }

        public static void main(String args[]) {
            long lasting = System.currentTimeMillis();
            try {
                SAXParserFactory sf = SAXParserFactory.newInstance();
                SAXParser sp = sf.newSAXParser();
                MyXMLReader reader = new MyXMLReader();
                sp.parse(new InputSource("data_10k.xml"), reader);
            } catch (Exception e) {
                e.printStackTrace();
            }
            System.out.println("ÔËÐÐʱ¼ä£º" + (System.currentTimeMillis() - lasting) + " ºÁÃë");
        }

        public void characters(char ch[], int start, int length) throws SAXException {
            String tag = (String) tags.peek();
            if (tag.equals("NO")) {
                System.out.print("³µÅƺÅÂ룺" + new String(ch, start, length));
            }
            if (tag.equals("ADDR")) {
                System.out.println("  µØÖ·:" + new String(ch, start, length));
            }
        }

        public void startElement(
            String uri,
            String localName,
            String qName,
            Attributes attrs) {
                tags.push(qName);
            }
        }

      10kÏûºÄʱ¼ä£º110 47 109 78
    100kÏûºÄʱ¼ä£º344 406 375 422
  1000kÏûºÄʱ¼ä£º3234 3281 3688 3312
10000kÏûºÄʱ¼ä£º32578 34313 31797 31890 30328


    È»ºóÊÇ JDOM http://www.jdom.org/

    JDOM µÄÄ¿µÄÊdzÉΪ Java ÌØ¶¨ÎĵµÄ£ÐÍ£¬Ëü¼ò»¯Óë XML µÄ½»»¥²¢ÇÒ±ÈʹÓà DOM ʵÏÖ¸ü¿ì¡£ÓÉÓÚÊǵÚÒ»¸ö Java ÌØ¶¨Ä£ÐÍ£¬JDOM Ò»Ö±µÃµ½´óÁ¦ÍƹãºÍ´Ù½ø¡£ÕýÔÚ¿¼ÂÇͨ¹ý“Java ¹æ·¶ÇëÇó JSR-102”½«Ëü×îÖÕÓÃ×÷“Java ±ê×¼À©Õ¹”¡£´Ó 2000 Äê³õ¾ÍÒѾ­¿ªÊ¼ÁË JDOM ¿ª·¢¡£

    JDOM Óë DOM Ö÷ÒªÓÐÁ½·½Ã治ͬ¡£Ê×ÏÈ£¬JDOM ½öʹÓþßÌåÀà¶ø²»Ê¹Óýӿڡ£ÕâÔÚijЩ·½Ãæ¼ò»¯ÁË API£¬µ«ÊÇÒ²ÏÞÖÆÁËÁé»îÐÔ¡£µÚ¶þ£¬API ´óÁ¿Ê¹ÓÃÁË Collections À࣬¼ò»¯ÁËÄÇЩÒѾ­ÊìϤÕâЩÀàµÄ Java ¿ª·¢ÕßµÄʹÓá£

    JDOM ÎĵµÉùÃ÷ÆäÄ¿µÄÊǓʹÓà 20%£¨»ò¸üÉÙ£©µÄ¾«Á¦½â¾ö 80%£¨»ò¸ü¶à£©Java/XML ÎÊÌ┣¨¸ù¾ÝѧϰÇúÏß¼Ù¶¨Îª 20%£©¡£JDOM ¶ÔÓÚ´ó¶àÊý Java/XML Ó¦ÓóÌÐòÀ´Ëµµ±È»ÊÇÓÐÓõ쬲¢ÇÒ´ó¶àÊý¿ª·¢Õß·¢ÏÖ API ±È DOM ÈÝÒ×Àí½âµÃ¶à¡£JDOM »¹°üÀ¨¶Ô³ÌÐòÐÐΪµÄÏ൱¹ã·º¼ì²éÒÔ·ÀÖ¹Óû§×öÈκÎÔÚ XML ÖÐÎÞÒâÒåµÄÊ¡£È»¶ø£¬ËüÈÔÐèÒªÄú³ä·ÖÀí½â XML ÒÔ±ã×öһЩ³¬³ö»ù±¾µÄ¹¤×÷£¨»òÕßÉõÖÁÀí½âijЩÇé¿öϵĴíÎ󣩡£ÕâÒ²ÐíÊDZÈѧϰ DOM »ò JDOM ½Ó¿Ú¶¼¸üÓÐÒâÒåµÄ¹¤×÷¡£

    JDOM ×ÔÉí²»°üº¬½âÎöÆ÷¡£Ëüͨ³£Ê¹Óà SAX2 ½âÎöÆ÷À´½âÎöºÍÑéÖ¤ÊäÈë XML Îĵµ£¨¾¡¹ÜËü»¹¿ÉÒÔ½«ÒÔǰ¹¹ÔìµÄ DOM ±íʾ×÷ΪÊäÈ룩¡£Ëü°üº¬Ò»Ð©×ª»»Æ÷ÒÔ½« JDOM ±íʾÊä³ö³É SAX2 ʼþÁ÷¡¢DOM Ä£ÐÍ»ò XML Îı¾Îĵµ¡£JDOM ÊÇÔÚ Apache Ðí¿ÉÖ¤±äÌåÏ·¢²¼µÄ¿ª·ÅÔ´Âë¡£

    BeanÎļþ£º
    package com.test;

    import java.io.*;
    import java.util.*;
    import org.jdom.*;
    import org.jdom.input.*;

    public class MyXMLReader {

        public static void main(String arge[]) {
            long lasting = System.currentTimeMillis();
            try {
                SAXBuilder builder = new SAXBuilder(); 
                Document doc = builder.build(new File("data_10k.xml"));
                Element foo = doc.getRootElement();
                List allChildren = foo.getChildren();
                for(int i=0;i<allChildren.size();i++) {
                    System.out.print("³µÅƺÅÂë:" + ((Element)allChildren.get(i)).getChild("NO").getText());
                    System.out.println(" ³µÖ÷µØÖ·:" + ((Element)allChildren.get(i)).getChild("ADDR").getText());
                }
            } catch (Exception e) {
                e.printStackTrace();
            }
            System.out.println("ÔËÐÐʱ¼ä£º" + (System.currentTimeMillis() - lasting) + " ºÁÃë");
        }
    }

      10kÏûºÄʱ¼ä£º125 62 187 94
    100kÏûºÄʱ¼ä£º704 625 640 766
  1000kÏûºÄʱ¼ä£º27984 30750 27859 30656
10000kÏûºÄʱ¼ä£ºOutOfMemoryError


    ×îºóÊÇ DOM4J http://dom4j.sourceforge.net/
   
    ËäÈ» DOM4J ´ú±íÁËÍêÈ«¶ÀÁ¢µÄ¿ª·¢½á¹û£¬µ«×î³õ£¬ËüÊÇ JDOM µÄÒ»ÖÖÖÇÄÜ·ÖÖ§¡£ËüºÏ²¢ÁËÐí¶à³¬³ö»ù±¾ XML Îĵµ±íʾµÄ¹¦ÄÜ£¬°üÀ¨¼¯³ÉµÄ XPath Ö§³Ö¡¢XML Schema Ö§³ÖÒÔ¼°ÓÃÓÚ´óÎĵµ»òÁ÷»¯ÎĵµµÄ»ùÓÚʼþµÄ´¦Àí¡£Ëü»¹ÌṩÁ˹¹½¨Îĵµ±íʾµÄÑ¡ÏËüͨ¹ý DOM4J API ºÍ±ê×¼ DOM ½Ó¿Ú¾ßÓв¢ÐзÃÎʹ¦ÄÜ¡£´Ó 2000 ϰëÄ꿪ʼ£¬Ëü¾ÍÒ»Ö±´¦ÓÚ¿ª·¢Ö®ÖС£

    Ϊ֧³ÖËùÓÐÕâЩ¹¦ÄÜ£¬DOM4J ʹÓýӿںͳéÏó»ù±¾Àà·½·¨¡£DOM4J ´óÁ¿Ê¹ÓÃÁË API ÖÐµÄ Collections À࣬µ«ÊÇÔÚÐí¶àÇé¿öÏ£¬Ëü»¹Ìá¹©Ò»Ð©Ìæ´ú·½·¨ÒÔÔÊÐí¸üºÃµÄÐÔÄÜ»ò¸üÖ±½ÓµÄ±àÂë·½·¨¡£Ö±½ÓºÃ´¦ÊÇ£¬ËäÈ» DOM4J ¸¶³öÁ˸ü¸´Ô API µÄ´ú¼Û£¬µ«ÊÇËüÌṩÁË±È JDOM ´óµÃ¶àµÄÁé»îÐÔ¡£

    ÔÚÌí¼ÓÁé»îÐÔ¡¢XPath ¼¯³ÉºÍ¶Ô´óÎĵµ´¦ÀíµÄÄ¿±êʱ£¬DOM4J µÄÄ¿±êÓë JDOM ÊÇÒ»ÑùµÄ£ºÕë¶Ô Java ¿ª·¢ÕßµÄÒ×ÓÃÐÔºÍÖ±¹Û²Ù×÷¡£Ëü»¹ÖÂÁ¦ÓÚ³ÉΪ±È JDOM ¸üÍêÕûµÄ½â¾ö·½°¸£¬ÊµÏÖÔÚ±¾ÖÊÉÏ´¦ÀíËùÓÐ Java/XML ÎÊÌâµÄÄ¿±ê¡£ÔÚÍê³É¸ÃÄ¿±êʱ£¬Ëü±È JDOM ¸üÉÙÇ¿µ÷·ÀÖ¹²»ÕýÈ·µÄÓ¦ÓóÌÐòÐÐΪ¡£

    DOM4J ÊÇÒ»¸ö·Ç³£·Ç³£ÓÅÐãµÄJava XML API£¬¾ßÓÐÐÔÄÜÓÅÒì¡¢¹¦ÄÜÇ¿´óºÍ¼«¶ËÒ×ÓÃʹÓõÄÌØµã£¬Í¬Ê±ËüÒ²ÊÇÒ»¸ö¿ª·ÅÔ´´úÂëµÄÈí¼þ¡£Èç½ñÄã¿ÉÒÔ¿´µ½Ô½À´Ô½¶àµÄ Java Èí¼þ¶¼ÔÚʹÓà DOM4J À´¶Áд XML£¬ÌرðÖµµÃÒ»ÌáµÄÊÇÁ¬ Sun µÄ JAXM Ò²ÔÚÓà DOM4J¡£

    BeanÎļþ£º
    package com.test;

    import java.io.*;
    import java.util.*;
    import org.dom4j.*;
    import org.dom4j.io.*;

    public class MyXMLReader {

        public static void main(String arge[]) {
            long lasting = System.currentTimeMillis();
            try {
                File f = new File("data_10k.xml");
                SAXReader reader = new SAXReader();
                Document doc = reader.read(f);
                Element root = doc.getRootElement();
                Element foo;
                for (Iterator i = root.elementIterator("VALUE"); i.hasNext();) {
                    foo = (Element) i.next();
                    System.out.print("³µÅƺÅÂë:" + foo.elementText("NO"));
                    System.out.println(" ³µÖ÷µØÖ·:" + foo.elementText("ADDR"));
                }
            } catch (Exception e) {
                e.printStackTrace();
            }
            System.out.println("ÔËÐÐʱ¼ä£º" + (System.currentTimeMillis() - lasting) + " ºÁÃë");
        }
    }

      10kÏûºÄʱ¼ä£º109 78 109 31
    100kÏûºÄʱ¼ä£º297 359 172 312
  1000kÏûºÄʱ¼ä£º2281 2359 2344 2469
10000kÏûºÄʱ¼ä£º20938 19922 20031 21078


THE END

   JDOM ºÍ DOM ÔÚÐÔÄܲâÊÔʱ±íÏÖ²»¼Ñ£¬ÔÚ²âÊÔ 10M ÎĵµÊ±ÄÚ´æÒç³ö¡£ÔÚСÎĵµÇé¿öÏ»¹ÖµµÃ¿¼ÂÇʹÓà DOM ºÍ JDOM¡£ËäÈ» JDOM µÄ¿ª·¢ÕßÒѾ­ËµÃ÷ËûÃÇÆÚÍûÔÚÕýʽ·¢ÐаæÇ°×¨×¢ÐÔÄÜÎÊÌ⣬µ«ÊÇ´ÓÐÔÄܹ۵ãÀ´¿´£¬ËüȷʵûÓÐÖµµÃÍÆ¼öÖ®´¦¡£ÁíÍ⣬DOM ÈÔÊÇÒ»¸ö·Ç³£ºÃµÄÑ¡Ôñ¡£DOM ʵÏֹ㷺ӦÓÃÓÚ¶àÖÖ±à³ÌÓïÑÔ¡£Ëü»¹ÊÇÐí¶àÆäËüÓë XML Ïà¹ØµÄ±ê×¼µÄ»ù´¡£¬ÒòΪËüÕýʽ»ñµÃ W3C ÍÆ¼ö£¨Óë»ùÓڷDZê×¼µÄ Java Ä£ÐÍÏà¶Ô£©£¬ËùÒÔÔÚijЩÀàÐ͵ÄÏîÄ¿ÖпÉÄÜÒ²ÐèÒªËü£¨ÈçÔÚ JavaScript ÖÐʹÓà DOM£©¡£
   SAX±íÏֽϺã¬ÕâÒªÒÀÀµÓÚËüÌØ¶¨µÄ½âÎö·½Ê½¡£Ò»¸ö SAX ¼ì²â¼´½«µ½À´µÄXMLÁ÷£¬µ«²¢Ã»ÓÐÔØÈëµ½Äڴ棨µ±È»µ±XMLÁ÷±»¶ÁÈëʱ£¬»áÓв¿·ÖÎĵµÔÝʱÒþ²ØÔÚÄÚ´æÖУ©¡£
   ÎÞÒÉ£¬DOM4JÊÇÕⳡ²âÊԵĻñʤÕߣ¬Ä¿Ç°Ðí¶à¿ªÔ´ÏîÄ¿ÖдóÁ¿²ÉÓà DOM4J£¬ÀýÈç´óÃû¶¦¶¦µÄ Hibernate Ò²Óà DOM4J À´¶ÁÈ¡ XML ÅäÖÃÎļþ¡£Èç¹û²»¿¼ÂÇ¿ÉÒÆÖ²ÐÔ£¬ÄǾͲÉÓÃDOM4J°É£¡


²Î¿¼ÎÄÏ×£º
http://www-900.ibm.com/developerWorks/cn/xml/x-injava/index.shtml
http://www-900.ibm.com/developerWorks/cn/xml/x-injava2/index.shtml


£¨Çë×¢Ò⣡ÒýÓá¢×ªÌù±¾ÎÄӦעÃ÷Ô­×÷ÕߣºRosen Jiang ÒÔ¼°³ö´¦£ºhttp://blog.csdn.net/rosen£©


±¾ÎĵØÖ·£ºhttp://www.newbooks.com.cn/info/15524.html
 
¡¾´òÓ¡¡¿ ¡¾¹Ø±Õ¡¿ 
  ·ÖÀàÐÅÏ¢
  ÈȵãÐÂÎÅ
2 ¶È¹ýÀ§ÄÑʱÆÚ 08ÄêµÚÈý¼¾Ó®Àû
2 Ï൱¶àµÄÆóÒµ¹ºÂòVistaÐí¿ÉÖ¤µ«»¹Ã»Ê¹ÓÃ
2 ºê»ùÔ¤¼ÆÍ¶Èë1.2ÒÚÃÀÔªÔÞÖú°ÂÔË»á
2 Vista IPv6¼¼ÊõÆØ°²È«Â©¶´£¬ÔâºÚ¿Í¹¥»÷
2 Ó¢ÌØ¶û08ÄêÊ׿îÈüÑïË«ºË1ÔÂÉÏÊÐ
2 ÐÂÎż¯ÍÅĬ¶à¿Ë½Ó°àÈ˸¡³öË®Ãæ
2 ÊýÂëÏà»ú°®¹úÕßΪÏû·ÑÕß½ÚÊ¡60ÒÚÔª
2 "Öйú×î¾ß¾ºÕùÁ¦º£ÍâÉÏÊй«Ë¾"£­¿ÕÖÐÍø
¶«·½Ã÷Öé
ÃÀͼ£º¶«·½Ã÷Öé
ÉÏÍøºÃ°ïÊÖ£¬ÏÂÔØ²»Öж¾µÄä¯ÀÀÆ÷
ÏÂÔØÉÏÍø²»Öж¾µÄä¯ÀÀÆ÷
 ¾«²ÊרÌâ
¡¤ÆóÒµÍøÕ¾½¨Éè ¡¤×¨ÒµÍøÕ¾½¨Éè
¡¤ÓòÃû×¢²á ¡¤ÖÐÎÄÓòÃû×¢²á
¡¤ÍøÕ¾¿Õ¼ä ¡¤ÐéÄâÖ÷»ú
¡¤ÆóÒµÓÊÏä ¡¤ÆóÒµGÓÊ
¡¤ÈçºÎ½¨ÉèÆóÒµÍøÕ¾ ¡¤ÕÒÉÌ»ú-ÓÃÒ×ËÑÍø
¡¤ÆóÒµÐÅÏ¢Ãâ·Ñ²éѯ ¡¤ÆóÒµ²úÆ·Ãâ·ÑÐû´«
¡¤×¢²áCNÓòÃûÖ»Ðè1Ôª ¡¤¹ú¼ÊÖÐÎÄÓòÃû×¢²á
¡¤Linux ÐéÄâÖ÷»ú ¡¤Windows ÐéÄâÖ÷»ú
¡¤ÉêÇëÃâ·ÑÓÊÏä ¡¤Ãâ·ÑÆóÒµGÓÊÏäÉêÇë
¸ñ¶·ÌìÍõ2000ÍþÁ¦¼ÓÇ¿°æ
ÓÎÏ·£º¸ñ¶·ÌìÍõ2000ÍþÁ¦¼ÓÇ¿°æ
ÉÏÍøºÃ°ïÊÖ£¬ÏÂÔØ²»Öж¾µÄä¯ÀÀÆ÷
ÈÃÄúµÄÍøÕ¾¿ªÊ¼»ñÈ¡ÊÕÈë
 ×îÐÂÎÄÕÂ
Ê×Ò³ | ¹ØÓÚÎÒÃÇ | ÁªÏµ·½Ê½ | ¹ÈËѶ¯Ì¬ | Ö§¸¶ÖÐÐÄ | ÓÑÇéÁ´½Ó | ¹¤×÷»ú»á | ÍøÕ¾µØÍ¼ | Òâ¼û·´À¡
© 2007 ¹ÈËÑ-IT·þÎñ