Java and XML_¶ÁÊé±Ê¼Ç_2010 05 16
2010-05-16
Èý¡¢½âÎöXMLÎĵµ
l Xerces½âÎöÆ÷¡¢SAXÀàºÍ½Ó¿Ú
l SAXÔĶÁÆ÷
n Ê×ÏÈÒªµÃµ½Ò»¸ö·ûºÏSAX org.xml.sax.XMLReader½Ó¿Ú¹æ·¶µÄÀý×Ó£¬Õâ¸ö½Ó¿Ú¶¨ÒåÁ˽âÎöÐÐΪ²¢ÔÊÐíÉèÖÃÄ³Ð©ÌØÕ÷ºÍÊôÐÔ¡£¸Ã½Ó¿ÚÌæ»»ÁËSAX1.0ÖеÄorg.xml.sax.Parser
import org.apache.xerces.parsers.SAXParser;
import org.xml.sax.XMLReader;
XMLReader parser = new SAXParser();
parser.parse(uri);
n µ±Ò»¸ö½âÎöÆ÷µ÷Èë²¢×¼±¸¾ÍÐ÷ºó£¬Ëü¾Í¿ÉÒÔ¶ÔÎĵµ½øÐнâÎöÁË£¬Í¨³£ÓÉparse()·½·¨µÄorg.xml.sax.XMLReaderÀ´´¦ÀíÒ»¸öorg.xml.sax.InputSource»òÕßÒ»¸öURI´®¡£
n ÄÚÈݹÜÀíÆ÷£ºÔÚ½âÎö½øÐÐʱ£¬ÎªÊ¹Ó¦ÓóÌÐòÓÐЧµØ´¦ÀíXMLÊý¾Ý£¬±ØÐëÓÃSAX½âÎöÆ÷µÇ¼Ç¹ÜÀíÆ÷£¨handler£©¡£¹ÜÀíÆ÷ÊÇÒ»×éSAX¶¨ÒåµÄ»Øµ÷£¬ËüÄÜÔÚÎĵµ½âÎö¹ý³ÌÖиøÖØÒªµÄʼþ²åÈëÏàÓ¦µÄÓ¦ÓóÌÐò´úÂë¡£ÕâЩʼþÓëÎĵµ½âÎöͬʱ½øÐС£SAX³ÉΪһ¸öÇ¿´ó½Ó¿ÚµÄÔÒòÖ®Ò»£º²»ÐèÒªÔÚÆðʼʱ¾Í½«È«²¿Îĵµ¶ÁÈëÄڴ棬¶þÊ®¿ÉÒÔ¶ÔÆä½øÐÐÁ¬Ðø´¦Àí¡£
n SAX2.0¶¨ÒåÁËËĸöºËÐĵĹÜÀíÆ÷½Ó¿Ú£ºorg.xml.sax.ContentHandler¡¢org.xml.sax.ErrorHandler¡¢org.xml.sax.DTDHandler¡¢org.xml.sax.EntityResolver¡£½âÎö¹ý³ÌÖУ¬Ö´ÐÐÌØ¶¨¶¯×÷µÄ¶¨ÖÆÓ¦ÓÃÀàÖ§³ÖËùÓнӿڣ¬ÕâЩִÐÐÀà¿ÉÒÔÓÃSetContentHandler()¡¢setDTDHandler()ºÍsetEntityResolver()µÄ·½·¨ÔÚ½âÎöÆ÷ÉÏ×¢²á¡£
u Îĵµ¶¨Î»Æ÷£ºorg.xml.sax.Locatorµ±Ä³»Øµ÷ʼþ³öÏÖʱ£¬Íê³É´¦ÀíµÄÀà±ØÐë´ÓSAX½âÎöÆ÷µÄXMLÎĵµÖÐÕÒµ½ÏàÓ¦µÄλÖá£
u ÎĵµµÄ¿ªÍ·ºÍ½áβ£ºstartDocument()ºÍendDocument()
startDocument()ÔÚÈÎºÎÆäËû»Øµ÷֮ǰ±»µ÷ÓÃ
endDocument()¾³£ÊÇÔÚËùÓйÜÀíÆ÷ÖÐ×îºó±»µ÷Óõķţ¬Èô²»¿É»Ö¸´ÐÔ´íÎó·¢Éú£¬ÔòErrorHandler»Øµ÷·½·¨½«±»»½ÐÑ£¬Í¬Ê±È¥µ÷ÓÃendDocument()½áÊø´Ë½âÎö¹ý³Ì¡£
ÕâÁ½¸ö»Øµ÷·½·¨¶¼»áÅ׳öSAXException£¬ÕâÒ²ÊÇSAXʼþ»áÅ׳öÒì³£µÄΨһ·½Ê½
u ´¦ÀíÖ¸ÁSAX¶¨ÒåÁËÌØÊâµÄ»Øµ÷À´´¦ÀíÖ¸Áî¡£ÕâÖз½·¨½ÓÊÜ´¦ÀíÖ¸ÁîµÄÄ¿±êºÍÄÇЩ´«µÝ¸ø´¦ÀíÖ¸ÁîµÄËùÓÐÊý¾Ý¡£
u Ãû×Ö¿Õ¼äµÄ»Øµ÷£ºÓÐÁ½ÖÖSAX»Øµ÷º¯ÊýרÃÅÓÃÓÚ´¦ÀíÃû×ֿռ䣨¾¡¹ÜÔªËØ»Øµ÷ҲʹÓÃËüÃÇ£©¡£µ±½âÎöÆ÷µ½µ×ǰ׺ӳÏñ£¨prefix mapping£©µÄ¿ªÍ·ºÍ½áβʱ£¬ËüÃDZ»»½ÐÑ
startPrefixMapping()»Øµ÷¸ø³öÓëURIÏà¹ØµÄÃû×Ö¿Õ¼äǰ׺¡£Ç°×ºÓ³Ïñ»Øµ÷ÔÚÉùÃ÷Ãû×Ö¿Õ¼äµÄÔªËØ»Øµ÷֮ǰÁ¢¼´·¢Éú¡£
endPrefixMapping()»Øµ÷ÔÚÉùÃ÷Ó³ÏñµÄÔªËØµÄ½áÊø±êǩ֮ºóÁ¢¼´³öÏÖ
u Ô
Ïà¹ØÎĵµ£º
package floatt;
public class Go {
public static int i = 0;
public static void main(String[] args){
calc("", 5);
System.out.println("×ܹ²ÓÐ"+i+"ÖÖ×ß·¨~");
}
//ÉÏÂ¥ÌÝÿ´ÎÖ»ÐèÒ»²½»òÕßÁ½²½£¬ÓжàÉÙ×ß·¨
public static void calc(String lo ......
package game;
public class HanTa {
public static int i = 0;
public static void main(String[] args){
calc('A', 'B', 'C', 2);
System.out.println("×îÉÙÐèÒª"+i+"²½¡£");
}
//ººÂÞËþÓÎÏ·¼ÆËã
public static void calc(char src, char ilde, c ......
package game;
public class Money {
public static void main(String[] args) {
fun("", 10);
System.out.println("×ܹ²Ëã·¨£º" + i);
}
// 10ԪǮµÄ×é³É£¬1£¬2£¬5ÈÎÒâ×éºÏ
public static int i = 1;
public static void fun(String log, int n) {
......
package game;
public class HanTaGame {
public static void main(String[] args) {
fun('1', '2', '3', 2);
}
// ººËþÓÎÏ·½â¾ö·½°¸
public static void fun(char src, char idle, char dest, int n) {
if (1 == n) {
System.out.println(src ......
ÖÕÓÚÍê³ÉÁË´®¿ÚµÄ±àд£¬¹¦Äܼܺòµ¥£¬ÈçÏ£º
×ö³öÒ»¸ö¼òµ¥½çÃæ£¬Ïò´®¿Ú·¢ËÍÌØ¶¨µÄÃüÁ´®¿ÚÉϽÓÓй©²âÊÔÓõĴ®¿ÚÉ豸£©£¬½ÓÊÕÉ豸·µ»ØµÄÊý¾ÝÔÚ½çÃæÉÏÏÔʾ£º
import gnu.io.CommPortIdentifier;
import gnu.io.PortInUseException;
import gnu.io.SerialPort;
import gnu.io.Ser ......