ÏÂÃæµÄÄÚÈÝ£¬ÎÒÃǽ«¸ü¶àµÄ¹Ø×¢DOM£¬ÎªDOM×÷Ò»¸ö½ÏΪÏêϸµÄ½âÎö£¬Ê¹ÎÒÃÇʹÓÃÆðÀ´¸üΪµÃÐÄÓ¦ÊÖ¡£
DOMÏê½â
1£®»ù±¾µÄDOM¶ÔÏó
DOMµÄ»ù±¾¶ÔÏóÓÐ5¸ö£ºDocument£¬Node£¬NodeList£¬ElementºÍAttr¡£ÏÂÃæ¾ÍÕâЩ¶ÔÏóµÄ¹¦ÄܺÍʵÏֵķ½·¨×÷Ò»¸ö´óÖµĽéÉÜ¡£
Document¶ÔÏó´ú±íÁËÕû¸öXMLµÄÎĵµ£¬ËùÓÐÆäËüµÄNode£¬¶¼ÒÔÒ»¶¨µÄ˳Ðò°üº¬ÔÚDocument¶ÔÏóÖ®ÄÚ£¬ÅÅÁгÉÒ»¸öÊ÷ÐεĽṹ£¬³ÌÐòÔ±¿ÉÒÔͨ¹ý±éÀúÕâ¿ÅÊ÷À´µÃµ½XMLÎĵµµÄËùÓеÄÄÚÈÝ£¬ÕâÒ²ÊǶÔXMLÎĵµ²Ù×÷µÄÆðµã¡£ÎÒÃÇ×ÜÊÇÏÈͨ¹ý½âÎöXMLÔ´Îļþ¶øµÃµ½Ò»¸öDocument¶ÔÏó£¬È»ºóÔÙÀ´Ö´ÐкóÐøµÄ²Ù×÷¡£´ËÍ⣬Document»¹°üº¬ÁË´´½¨ÆäËü½ÚµãµÄ·½·¨£¬±ÈÈçcreateAttribut()ÓÃÀ´´´½¨Ò»¸öAttr¶ÔÏó¡£ËüËù°üº¬µÄÖ÷ÒªµÄ·½·¨ÓУº
createAttribute(String)£ºÓøø¶¨µÄÊôÐÔÃû´´½¨Ò»¸öAttr¶ÔÏ󣬲¢¿ÉÔÚÆäºóʹÓÃsetAttributeNode·½·¨À´·ÅÖÃÔÚijһ¸öElement¶ÔÏóÉÏÃæ¡£
createElement(String)£ºÓøø¶¨µÄ±êÇ©Ãû´´½¨Ò»¸öElement¶ÔÏ󣬴ú±íXMLÎĵµÖеÄÒ»¸ö±êÇ©£¬È»ºó¾Í¿ÉÒÔÔÚÕâ¸öElement¶ÔÏóÉÏÌí¼ÓÊôÐÔ»ò½øÐÐÆäËüµÄ²Ù×÷¡£
createTextNode(String)£ºÓøø¶¨µÄ×Ö·û´®´´½¨Ò»¸öText¶ÔÏó£¬Text¶ÔÏó´ú±íÁ˱êÇ©»òÕßÊôÐÔÖÐËù°üº¬µÄ´¿Îı¾×Ö·û´®¡£Èç¹ûÔÚÒ»¸ö±êÇ©ÄÚûÓÐÆ ......
ÏÂÃæµÄÄÚÈÝ£¬ÎÒÃǽ«¸ü¶àµÄ¹Ø×¢DOM£¬ÎªDOM×÷Ò»¸ö½ÏΪÏêϸµÄ½âÎö£¬Ê¹ÎÒÃÇʹÓÃÆðÀ´¸üΪµÃÐÄÓ¦ÊÖ¡£
DOMÏê½â
1£®»ù±¾µÄDOM¶ÔÏó
DOMµÄ»ù±¾¶ÔÏóÓÐ5¸ö£ºDocument£¬Node£¬NodeList£¬ElementºÍAttr¡£ÏÂÃæ¾ÍÕâЩ¶ÔÏóµÄ¹¦ÄܺÍʵÏֵķ½·¨×÷Ò»¸ö´óÖµĽéÉÜ¡£
Document¶ÔÏó´ú±íÁËÕû¸öXMLµÄÎĵµ£¬ËùÓÐÆäËüµÄNode£¬¶¼ÒÔÒ»¶¨µÄ˳Ðò°üº¬ÔÚDocument¶ÔÏóÖ®ÄÚ£¬ÅÅÁгÉÒ»¸öÊ÷ÐεĽṹ£¬³ÌÐòÔ±¿ÉÒÔͨ¹ý±éÀúÕâ¿ÅÊ÷À´µÃµ½XMLÎĵµµÄËùÓеÄÄÚÈÝ£¬ÕâÒ²ÊǶÔXMLÎĵµ²Ù×÷µÄÆðµã¡£ÎÒÃÇ×ÜÊÇÏÈͨ¹ý½âÎöXMLÔ´Îļþ¶øµÃµ½Ò»¸öDocument¶ÔÏó£¬È»ºóÔÙÀ´Ö´ÐкóÐøµÄ²Ù×÷¡£´ËÍ⣬Document»¹°üº¬ÁË´´½¨ÆäËü½ÚµãµÄ·½·¨£¬±ÈÈçcreateAttribut()ÓÃÀ´´´½¨Ò»¸öAttr¶ÔÏó¡£ËüËù°üº¬µÄÖ÷ÒªµÄ·½·¨ÓУº
createAttribute(String)£ºÓøø¶¨µÄÊôÐÔÃû´´½¨Ò»¸öAttr¶ÔÏ󣬲¢¿ÉÔÚÆäºóʹÓÃsetAttributeNode·½·¨À´·ÅÖÃÔÚijһ¸öElement¶ÔÏóÉÏÃæ¡£
createElement(String)£ºÓøø¶¨µÄ±êÇ©Ãû´´½¨Ò»¸öElement¶ÔÏ󣬴ú±íXMLÎĵµÖеÄÒ»¸ö±êÇ©£¬È»ºó¾Í¿ÉÒÔÔÚÕâ¸öElement¶ÔÏóÉÏÌí¼ÓÊôÐÔ»ò½øÐÐÆäËüµÄ²Ù×÷¡£
createTextNode(String)£ºÓøø¶¨µÄ×Ö·û´®´´½¨Ò»¸öText¶ÔÏó£¬Text¶ÔÏó´ú±íÁ˱êÇ©»òÕßÊôÐÔÖÐËù°üº¬µÄ´¿Îı¾×Ö·û´®¡£Èç¹ûÔÚÒ»¸ö±êÇ©ÄÚûÓÐÆ ......
2£®DOMʵÀý
ÓÐÁËÉÏÃæµÄ½éÉÜ£¬ÏàÐÅÄã¶ÔDOMÀí½âµÄ¸ü¶àÁË°É¡£ÏÂÃæµÄÀý×Ó½«ÈÃÄã¶ÔDOM¸ü¼ÓÊìϤÆðÀ´¡£
ÏÈ˵˵Õâ¸öÀý×Óµ½µ×Òª×öµÄÊÇʲô°É£¬ÎÒÃÇÏ£ÍûÔÚÒ»¸öÃûΪlink.xmlÎļþÖб£´æÁËһЩURLµØÖ·£¬Í¨¹ýÒ»¸ö¼òµ¥µÄ³ÌÐò£¬ÎÒÃÇ¿ÉÒÔͨ¹ýDOM°ÑÕâЩURL¶Á³ö²¢ÏÔʾ³öÀ´£¬Ò²¿ÉÒÔ·´¹ýÀ´ÏòÕâ¸öXMLÎļþÖÐдÈë¼ÓÈëµÄURLµØÖ·¡£ºÜ¼òµ¥£¬È´ºÜʵÓã¬Ò²×ã¹»À´ÀýʾDOMµÄ¾ø´ó²¿·ÖÓ÷¨ÁË¡£
XMLÎļþ±¾Éí²»¸´ÔÓ£¬¾Í²»¸ø³öËüµÄDTDÁË¡£link.xml:
JSP Insider
http://www.jspinsider.com
JSP Insider
2
1
2001
A JSP information site.
The makers of Java
http://java.sun.com
Sun Microsystems
3
1
2001
Sun Microsystem's website.
The standard JSP container
http://jakarta.apache.org
Apache Group
4
1
2001
Some great software.
µÚÒ»¸ö³ÌÐòÎÒÃdzÆΪxmldisplay.java£¬¾ßÌåµÄ³ÌÐòÇåµ¥¿ÉÒÔÔÚ¸½¼þÖÐÕÒµ½¡£Ö÷ÒªµÄ¹¦ÄܾÍÊǶÁÈ¡Õâ¸öXMLÎļþÖи÷¸ö½ÚµãµÄÄÚÈÝ£¬È»ºóÔÚ¸ñʽ»¯Êä³öÔÚSystem.outÉÏ£¬ÎÒÃÇÀ´¿´¿´Õâ¸ö³ÌÐò£º
import javax.xml.parsers.*;
import org.w3c.dom.*;
ÕâÊÇÒýÈë±ØÒªµÄÀ࣬ÒòΪÔÚÕâÀïʹÓõÄÊÇSunËùÌṩµÄXML½âÎöÆ÷£¬Òò¶øÐèÒªÒýÈëjava. ......
2£®DOMʵÀý
ÓÐÁËÉÏÃæµÄ½éÉÜ£¬ÏàÐÅÄã¶ÔDOMÀí½âµÄ¸ü¶àÁË°É¡£ÏÂÃæµÄÀý×Ó½«ÈÃÄã¶ÔDOM¸ü¼ÓÊìϤÆðÀ´¡£
ÏÈ˵˵Õâ¸öÀý×Óµ½µ×Òª×öµÄÊÇʲô°É£¬ÎÒÃÇÏ£ÍûÔÚÒ»¸öÃûΪlink.xmlÎļþÖб£´æÁËһЩURLµØÖ·£¬Í¨¹ýÒ»¸ö¼òµ¥µÄ³ÌÐò£¬ÎÒÃÇ¿ÉÒÔͨ¹ýDOM°ÑÕâЩURL¶Á³ö²¢ÏÔʾ³öÀ´£¬Ò²¿ÉÒÔ·´¹ýÀ´ÏòÕâ¸öXMLÎļþÖÐдÈë¼ÓÈëµÄURLµØÖ·¡£ºÜ¼òµ¥£¬È´ºÜʵÓã¬Ò²×ã¹»À´ÀýʾDOMµÄ¾ø´ó²¿·ÖÓ÷¨ÁË¡£
XMLÎļþ±¾Éí²»¸´ÔÓ£¬¾Í²»¸ø³öËüµÄDTDÁË¡£link.xml:
JSP Insider
http://www.jspinsider.com
JSP Insider
2
1
2001
A JSP information site.
The makers of Java
http://java.sun.com
Sun Microsystems
3
1
2001
Sun Microsystem's website.
The standard JSP container
http://jakarta.apache.org
Apache Group
4
1
2001
Some great software.
µÚÒ»¸ö³ÌÐòÎÒÃdzÆΪxmldisplay.java£¬¾ßÌåµÄ³ÌÐòÇåµ¥¿ÉÒÔÔÚ¸½¼þÖÐÕÒµ½¡£Ö÷ÒªµÄ¹¦ÄܾÍÊǶÁÈ¡Õâ¸öXMLÎļþÖи÷¸ö½ÚµãµÄÄÚÈÝ£¬È»ºóÔÚ¸ñʽ»¯Êä³öÔÚSystem.outÉÏ£¬ÎÒÃÇÀ´¿´¿´Õâ¸ö³ÌÐò£º
import javax.xml.parsers.*;
import org.w3c.dom.*;
ÕâÊÇÒýÈë±ØÒªµÄÀ࣬ÒòΪÔÚÕâÀïʹÓõÄÊÇSunËùÌṩµÄXML½âÎöÆ÷£¬Òò¶øÐèÒªÒýÈëjava. ......
Struts 2 ʹÓÃXMLÎļþУÑéÀýÌâ
ÔÚÕâ¸öÀý×ÓÖÐÎÒÃǽ«Á˽⵽ÔõôÑùͨ¹ýXMLÎļþÀ´½øÐÐУÑé¡£XMLУÑéÎļþ±ØÐëÒÔ"¶¯×÷(action)Àà-Validation.xml"µÄÐÎʽÃüÃû¡£ÔÚÕâ¸öÀý×ÓÖУ¬¶¯×÷(action)ÀàÃûÊÇ"Login.java"£¬XMLÎļþÃûÊÇ"Login-Validation.xml"¡£
Login-validation.xmlµÄÎļþÄÚÈÝÈçÏ£º
<!DOCTYPE validators PUBLIC "-//OpenSymphony Group//XWork Validator 1.0.2//EN" "http://www.opensymphony.com/xwork/xwork-validator-1.0.2.dtd">
<validators>
<field name="userName">
<field-validator type="requiredstring">
<message>User Name is required.</message>
</field-validator>
</field>
<field name="password">
<field-validator type="requiredstring">
<message key="password.required" />
</field-validator>
</field>
</validators>
field±êÇ©ÔªËØ°üº¬ÐèÒªÑéÖ¤µÄ±íµ¥ÊôÐÔÃû¡£field-validator±êÇ©ÔªËØ°üº¬µÄÊÇÐèÒªÖ´ÐеÄУÑéÀàÐÍ¡£
¿ÉÒÔͨ¹ýmessage±êÇ©ÔªËØÖ±½ÓÖ¸¶¨´ ......
dom4j ÊÇÒ»ÖÖ½âÎö XML ÎĵµµÄ¿ª·ÅÔ´´úÂë XML ¿ò¼Ü¡£±¾ÎĽéÉÜÈçºÎʹÓðüº¬ÔÚ dom4j ÖеĽâÎöÆ÷´´½¨²¢ÐÞ¸Ä XML Îĵµ¡£
dom4j API °üº¬Ò»¸ö½âÎö XML ÎĵµµÄ¹¤¾ß¡£±¾ÎÄÖн«Ê¹ÓÃÕâ¸ö½âÎöÆ÷´´½¨Ò»¸öʾÀý XML Îĵµ¡£Çåµ¥ 1 ÏÔʾÁËÕâ¸öʾÀý XML Îĵµ£¬catalog.xml¡£
Çåµ¥ 1. ʾÀý XML Îĵµ£¨catalog.xml£©
<?xml version="1.0" encoding="UTF-8"?>
<catalog>
<!--An XML Catalog-->
<?target instruction?>
<journal title="XML Zone"
publisher="IBM developerWorks">
<article level="Intermediate" date="December-2001">
<title>Java configuration with XML Schema</title>
<author>
<firstname>Marcello</firstname>
<lastname>Vitaletti</lastname>
</author>
</article>
</journal>
</catalog>
È»ºóʹÓÃͬһ¸ö½âÎöÆ÷ÐÞ¸Ä catalog.xml£¬Çåµ¥ ......
DOM³õ²½
DOMÊÇDocument Object ModelµÄËõд£¬¼´Îĵµ¶ÔÏóÄ£ÐÍ¡£Ç°Ãæ˵¹ý£¬XML½«Êý¾Ý×é֯Ϊһ¿ÅÊ÷£¬ËùÒÔDOM¾ÍÊǶÔÕâ¿ÅÊ÷µÄÒ»¸ö¶ÔÏóÃèÐð¡£Í¨Ë×µÄ˵£¬¾ÍÊÇͨ¹ý½âÎöXMLÎĵµ£¬ÎªXMLÎĵµÔÚÂß¼ÉϽ¨Á¢Ò»¸öÊ÷Ä£ÐÍ£¬Ê÷µÄ½ÚµãÊÇÒ»¸ö¸ö¶ÔÏó¡£ÎÒÃÇͨ¹ý´æÈ¡ÕâЩ¶ÔÏó¾ÍÄܹ»´æÈ¡XMLÎĵµµÄÄÚÈÝ¡£
ÏÂÃæÎÒÃÇÀ´¿´Ò»¸ö¼òµ¥µÄÀý×Ó£¬¿´¿´ÔÚDOMÖУ¬ÎÒÃÇÊÇÈçºÎÀ´²Ù×÷Ò»¸öXMLÎĵµµÄ¡£
ÕâÊÇÒ»¸öXMLÎĵµ£¬Ò²ÊÇÎÒÃÇÒª²Ù×÷µÄ¶ÔÏó£º
<?xml version="1.0" encoding="UTF-8"?>
<messages>
<message>Good-bye serialization, hello Java!</message>
</messages>
ÏÂÃ棬ÎÒÃÇÐèÒª°ÑÕâ¸öÎĵµµÄÄÚÈݽâÎöµ½Ò»¸ö¸öµÄJava¶ÔÏóÖÐÈ¥¹©³ÌÐòʹÓã¬ÀûÓÃJAXP£¬ÎÒÃÇÖ»Ð輸ÐдúÂë¾ÍÄÜ×öµ½ÕâÒ»µã¡£Ê×ÏÈ£¬ÎÒÃÇÐèÒª½¨Á¢Ò»¸ö½âÎöÆ÷¹¤³§£¬ÒÔÀûÓÃÕâ¸ö¹¤³§À´»ñµÃÒ»¸ö¾ßÌåµÄ½âÎöÆ÷¶ÔÏó£º
DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
ÎÒÃÇÔÚÕâÀïʹÓÃDocumentBuilderFacotryµÄÄ¿µÄÊÇΪÁË´´½¨Óë¾ßÌå½âÎöÆ÷Î޹صijÌÐò£¬µ±DocumentBuilderFactoryÀàµÄ¾²Ì¬·½·¨newInstance()±»µ÷ÓÃʱ£¬Ëü¸ù¾ÝÒ»¸öϵͳ±äÁ¿À´¾ö¶¨¾ßÌåʹÓÃÄÄÒ»¸ö½âÎöÆ÷¡£ÓÖÒòΪËùÓеĽâÎöÆ÷¶¼·þ´ÓÓÚJAXPËù ......
DOM³õ²½
DOMÊÇDocument Object ModelµÄËõд£¬¼´Îĵµ¶ÔÏóÄ£ÐÍ¡£Ç°Ãæ˵¹ý£¬XML½«Êý¾Ý×é֯Ϊһ¿ÅÊ÷£¬ËùÒÔDOM¾ÍÊǶÔÕâ¿ÅÊ÷µÄÒ»¸ö¶ÔÏóÃèÐð¡£Í¨Ë×µÄ˵£¬¾ÍÊÇͨ¹ý½âÎöXMLÎĵµ£¬ÎªXMLÎĵµÔÚÂß¼ÉϽ¨Á¢Ò»¸öÊ÷Ä£ÐÍ£¬Ê÷µÄ½ÚµãÊÇÒ»¸ö¸ö¶ÔÏó¡£ÎÒÃÇͨ¹ý´æÈ¡ÕâЩ¶ÔÏó¾ÍÄܹ»´æÈ¡XMLÎĵµµÄÄÚÈÝ¡£
ÏÂÃæÎÒÃÇÀ´¿´Ò»¸ö¼òµ¥µÄÀý×Ó£¬¿´¿´ÔÚDOMÖУ¬ÎÒÃÇÊÇÈçºÎÀ´²Ù×÷Ò»¸öXMLÎĵµµÄ¡£
ÕâÊÇÒ»¸öXMLÎĵµ£¬Ò²ÊÇÎÒÃÇÒª²Ù×÷µÄ¶ÔÏó£º
<?xml version="1.0" encoding="UTF-8"?>
<messages>
<message>Good-bye serialization, hello Java!</message>
</messages>
ÏÂÃ棬ÎÒÃÇÐèÒª°ÑÕâ¸öÎĵµµÄÄÚÈݽâÎöµ½Ò»¸ö¸öµÄJava¶ÔÏóÖÐÈ¥¹©³ÌÐòʹÓã¬ÀûÓÃJAXP£¬ÎÒÃÇÖ»Ð輸ÐдúÂë¾ÍÄÜ×öµ½ÕâÒ»µã¡£Ê×ÏÈ£¬ÎÒÃÇÐèÒª½¨Á¢Ò»¸ö½âÎöÆ÷¹¤³§£¬ÒÔÀûÓÃÕâ¸ö¹¤³§À´»ñµÃÒ»¸ö¾ßÌåµÄ½âÎöÆ÷¶ÔÏó£º
DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
ÎÒÃÇÔÚÕâÀïʹÓÃDocumentBuilderFacotryµÄÄ¿µÄÊÇΪÁË´´½¨Óë¾ßÌå½âÎöÆ÷Î޹صijÌÐò£¬µ±DocumentBuilderFactoryÀàµÄ¾²Ì¬·½·¨newInstance()±»µ÷ÓÃʱ£¬Ëü¸ù¾ÝÒ»¸öϵͳ±äÁ¿À´¾ö¶¨¾ßÌåʹÓÃÄÄÒ»¸ö½âÎöÆ÷¡£ÓÖÒòΪËùÓеĽâÎöÆ÷¶¼·þ´ÓÓÚJAXPËù ......
Ìí¼Ó¼Ç¼µ½ds±£´æµ½xml
DataSet ds = new DataSet("myDs");
//´ÓXMLÖжÁÈ¡Êý¾Ý
ds.ReadXml(Server.MapPath(@".dbdbGuest.xml"));
//ÒÔÏÂΪÌí¼Ó¼Ç¼
DataRow dr = ds.Tables[0].NewRow();
dr["Name"] = tbName.Text.Trim();
dr["City"] = tbCity.Text.Trim();
dr["Email"] = tbEmail.Text.Trim();
dr["Message"] = tbComments.Text.Trim();
......