×÷ÕߣºØýÃû ÎÄÕÂÀ´Ô´£º»¥ÁªÍø µã»÷Êý£º ÔÚÏßͶ¸å Ͷ¸åÖ¸ÄÏ  |
DOM³õ²½
DOMÊÇDocument Object ModelµÄËõд£¬¼´Îĵµ¶ÔÏóÄ£ÐÍ¡£Ç°ÃæËµ¹ý£¬XML½«Êý¾Ý×é֯Ϊһ¿ÅÊ÷£¬ËùÒÔDOM¾ÍÊǶÔÕâ¿ÅÊ÷µÄÒ»¸ö¶ÔÏóÃèÐð¡£Í¨Ë×µÄ˵£¬¾ÍÊÇͨ¹ý½âÎöXMLÎĵµ£¬ÎªXMLÎĵµÔÚÂß¼ÉϽ¨Á¢Ò»¸öÊ÷Ä£ÐÍ£¬Ê÷µÄ½ÚµãÊÇÒ»¸ö¸ö¶ÔÏó¡£ÎÒÃÇͨ¹ý´æÈ¡ÕâЩ¶ÔÏó¾ÍÄܹ»´æÈ¡XMLÎĵµµÄÄÚÈÝ¡£
ÏÂÃæÎÒÃÇÀ´¿´Ò»¸ö¼òµ¥µÄÀý×Ó£¬¿´¿´ÔÚDOMÖУ¬ÎÒÃÇÊÇÈçºÎÀ´²Ù×÷Ò»¸öXMLÎĵµµÄ¡£
ÕâÊÇÒ»¸öXMLÎĵµ£¬Ò²ÊÇÎÒÃÇÒª²Ù×÷µÄ¶ÔÏó£º
Good-bye serialization, hello Java!
ÏÂÃæ£¬ÎÒÃÇÐèÒª°ÑÕâ¸öÎĵµµÄÄÚÈݽâÎöµ½Ò»¸ö¸öµÄJava¶ÔÏóÖÐÈ¥¹©³ÌÐòʹÓã¬ÀûÓÃJAXP£¬ÎÒÃÇÖ»Ð輸ÐдúÂë¾ÍÄÜ×öµ½ÕâÒ»µã¡£Ê×ÏÈ£¬ÎÒÃÇÐèÒª½¨Á¢Ò»¸ö½âÎöÆ÷¹¤³§£¬ÒÔÀûÓÃÕâ¸ö¹¤³§À´»ñµÃÒ»¸ö¾ßÌåµÄ½âÎöÆ÷¶ÔÏó£º
DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
ÎÒÃÇÔÚÕâÀïʹÓÃDocumentBuilderFacotryµÄÄ¿µÄÊÇΪÁË´´½¨Óë¾ßÌå½âÎöÆ÷Î޹صijÌÐò£¬µ±DocumentBuilderFactoryÀàµÄ¾²Ì¬·½·¨newInstance()±»µ÷ÓÃʱ£¬Ëü¸ù¾ÝÒ»¸öϵͳ±äÁ¿À´¾ö¶¨¾ßÌåʹÓÃÄÄÒ»¸ö½âÎöÆ÷¡£ÓÖÒòΪËùÓеĽâÎöÆ÷¶¼¸£´ÓÓÚJAXPËù¶¨ÒåµÄ½Ó¿Ú£¬ËùÒÔÎÞÂÛ¾ßÌåʹÓÃÄÄÒ»¸ö½âÎöÆ÷£¬´úÂë¶¼ÊÇÒ»ÑùµÄ¡£ËùÒÔµ±ÔÚ²»Í¬µÄ½âÎöÆ÷Ö®¼ä½øÐÐÇл»Ê±£¬Ö»ÐèÒª¸ü¸Äϵͳ±äÁ¿µÄÖµ£¬¶ø²»Óøü¸ÄÈκδúÂë¡£Õâ¾ÍÊǹ¤³§Ëù´øÀ´µÄºÃ´¦¡£Õâ¸ö¹¤³§Ä£Ê½µÄ¾ßÌåʵÏÖ£¬¿ÉÒԲο´ÏÂÃæµÄÀàͼ¡£
DocumentBuilder db = dbf.newDocumentBuilder();
µ±»ñµÃÒ»¸ö¹¤³§¶ÔÏóºó£¬Ê¹ÓÃËüµÄ¾²Ì¬·½·¨newDocumentBuilder()·½·¨¿ÉÒÔ»ñµÃÒ»¸öDocumentBuilder¶ÔÏó£¬Õâ¸ö¶ÔÏó´ú±íÁ˾ßÌåµÄDOM½âÎöÆ÷¡£µ«¾ßÌåÊÇÄÄÒ»ÖÖ½âÎöÆ÷£¬Î¢ÈíµÄ»òÕßIBMµÄ£¬¶ÔÓÚ³ÌÐò¶øÑÔ²¢²»ÖØÒª¡£
È»ºó£¬ÎÒÃǾͿÉÒÔÀûÓÃÕâ¸ö½âÎöÆ÷À´¶ÔXMLÎĵµ½øÐнâÎöÁË£º
Document doc = db.parse("c:/xml/message.xml");
DocumentBuilderµÄparse()·½·¨½ÓÊÜÒ»¸öXMLÎĵµÃû×÷ΪÊäÈë²ÎÊý£¬·µ»ØÒ»¸öDocument¶ÔÏó£¬Õâ¸öDocument¶ÔÏó¾Í´ú±íÁËÒ»¸öXMLÎĵµµÄÊ÷Ä£ÐÍ¡£ÒÔºóËùÓеĶÔXMLÎĵµµÄ²Ù×÷£¬¶¼Óë½âÎöÆ÷Î޹أ¬Ö±½ÓÔÚÕâ¸öDocument¶ÔÏóÉϽøÐвÙ×÷¾Í¿ÉÒÔÁË¡£¶ø¾ßÌå¶ÔDocument²Ù×÷µÄ·½·¨£¬¾ÍÊÇÓÉDOMËù¶¨ÒåµÄÁË¡£
JaxpÖ§³ÖW3CËùÍ˼öµÄDOM 2¡£Èç¹ûÄã¶ÔDOMºÜÊìϤ£¬ÄÇôÏÂÃæµÄÄÚÈݾͺܼòµ¥ÁË£ºÖ»ÐèÒª°´ÕÕDOMµÄ¹æ·¶À´½øÐз½·¨µ÷ÓþͿÉÒÔ¡£µ±È»£¬Èç¹ûÄã¶ÔDOM²»Çå³þ£¬Ò²²»ÓÃ׿±£¬ºóÃæÎÒÃÇ»áÓÐÏêϸµÄ½éÉÜ¡£ÔÚÕâ¶ù£¬ÄãËùÒªÖªµÀ²¢ÀμǵÄÊÇ£ºDOMÊÇÓÃÀ´ÃèÐðXMLÎĵµÖеÄÊý¾ÝµÄÄ£ÐÍ£¬ÒýÈëDOMµÄÈ«²¿ÔÒò¾ÍÊÇΪÁËÓÃÕâ¸öÄ£ÐÍÀ´²Ù×÷XMLÎĵµµÄÖеÄÊý¾Ý¡£DOM¹æ·¶Öж¨ÒåÓнڵ㣨¼´¶ÔÏ󣩡¢ÊôÐԺͷ½·¨£¬ÎÒÃÇͨ¹ýÕâЩ½ÚµãµÄ´æÈ¡À´´æÈ¡XMLµÄÊý¾Ý¡£
´ÓÉÏÃæµÃµ½µÄDocument¶ÔÏó¿ªÊ¼£¬ÎÒÃǾͿÉÒÔ¿ªÊ¼ÎÒÃǵÄDOMÖ®ÂÃÁË¡£Ê¹ÓÃDocument¶ÔÏóµÄgetElementsByTagName()·½·¨£¬ÎÒÃÇ¿ÉÒԵõ½Ò»¸öNodeList¶ÔÏó£¬Ò»¸öNode¶ÔÏó´ú±íÁËÒ»¸öXMLÎĵµÖеÄÒ»¸ö±êÇ©ÔªËØ£¬¶øNodeList¶ÔÏó£¬¹ÛÆäÃû¶øÖªÆäÒ⣬Ëù´ú±íµÄÊÇÒ»¸öNode¶ÔÏóµÄÁÐ±í£º
NodeList nl = doc.getElementsByTagName("message");
ÎÒÃÇͨ¹ýÕâÑùÒ»ÌõÓï¾äËùµÃµ½µÄÊÇXMLÎĵµÖÐËùÓбêÇ©¶ÔÓ¦µÄNode¶ÔÏóµÄÒ»¸öÁÐ±í¡£È»ºó£¬ÎÒÃÇ¿ÉÒÔʹÓÃNodeList¶ÔÏóµÄitem()·½·¨À´µÃµ½ÁбíÖеÄÿһ¸öNode¶ÔÏó£º
Node my_node = nl.item(0);
µ±Ò»¸öNode¶ÔÏó±»½¨Á¢Ö®ºó£¬±£´æÔÚXMLÎĵµÖеÄÊý¾Ý¾Í±»ÌáÈ¡³öÀ´²¢·â×°ÔÚÕâ¸öNodeÖÐÁË¡£ÔÚÕâ¸öÀý×ÓÖУ¬ÒªÌáÈ¡Message±êÇ©ÄÚµÄÄÚÈÝ£¬ÎÒÃÇͨ³£»áʹÓÃNode¶ÔÏóµÄgetNodeValue()·½·¨£º
String message = my_node.getFirstChild().getNodeValue();
Çë×¢Ò⣬ÕâÀﻹʹÓÃÁËÒ»¸ögetFirstChild()·½·¨À´»ñµÃmessageÏÂÃæµÄµÚÒ»¸ö×ÓNode¶ÔÏó¡£ËäÈ»ÔÚmessage±êÇ©ÏÂÃæ³ýÁËÎı¾ÍⲢûÓÐÆäËü×Ó±êÇ©»òÕßÊôÐÔ£¬µ«ÊÇÎÒÃǼá³ÖÔÚÕâÀïʹÓÃgetFirseChild()·½·¨£¬ÕâÖ÷ÒªºÍW3C¶ÔDOMµÄ¶¨ÒåÓйء£W3C°Ñ±êÇ©ÄÚµÄÎı¾²¿·ÖÒ²¶¨Òå³ÉÒ»¸öNode£¬ËùÒÔÏÈÒªµÃµ½´ú±íÎı¾µÄÄǸöNode£¬ÎÒÃDzÅÄܹ»Ê¹ÓÃgetNodeValue()À´»ñÈ¡Îı¾µÄÄÚÈÝ¡£
ÏÖÔÚ£¬¼ÈÈ»ÎÒÃÇÒѾÄܹ»´ÓXMLÎļþÖÐÌáÈ¡³öÊý¾ÝÁË£¬ÎÒÃǾͿÉÒÔ°ÑÕâЩÊý¾ÝÓÃÔÚºÍÊʵĵط½£¬À´¹¹ÖþÓ¦ÓóÌÐò¡£
|
ÐÅÑôµçÄÔÍøÉêÃ÷:±¾Õ¾×ÊÔ´À´Ô´ÓÚ»¥ÁªÍø,°æÈ¨¹éÔ×÷ÕßËùÓУ¬ÈçÓÐÇÖȨÇëÁªÏµÎÒÃÇ,ÎÒÃǽ«ÔÚÊÕµ½ÏûÏ¢ºó24СʱÄÚɾ³ý.
ÉÏһƪÎÄÕ£º HibernateºÍJive»º´æ²ßÂÔµÄ±È½Ï |
ÏÂһƪÎÄÕ£º JavaÓëXMLÁªºÏ±à³ÌÖ®SAXƪ |
¡¾×ÖÌ壺С ´ó¡¿¡¾·¢±íÆÀÂÛ¡¿¡¾¼ÓÈëÊղء¿¡¾¸æËߺÃÓÑ¡¿¡¾´òÓ¡´ËÎÄ¡¿¡¾¹Ø±Õ´°¿Ú¡¿ |
¡¡ ¡¡ÍøÓÑÆÀÂÛ£º£¨Ö»ÏÔʾ×îÐÂ10Ìõ¡£ÆÀÂÛÄÚÈÝÖ»´ú±íÍøÓѹ۵㣬Óë±¾Õ¾Á¢³¡Î޹أ¡£© |
|
|