锘??xml version="1.0" encoding="utf-8" standalone="yes"?> 鍦↖BM鐨刣eveloperWorks涓婃湁涓ょ瘒闈炲父浼樼鐨勫叧浜?span style="COLOR: #cc0000">JavaXML API鐨勮瘎嫻嬫枃绔狅細(xì) Java 涓?/font> XML 鏂囨。妯″瀷鐨勭敤娉?/font> 瀵硅繖涓ょ瘒鏂囩珷鎴戞兂璇寸殑灝辨槸 鍚愯鎺ㄨ崘 Java鐨?span style="COLOR: #cc0000">XML API榪欏嚑綃囨枃绔犺璁茬殑閮借鍒頒簡錛屾垜鍙兂琛ュ厖鍑犵偣錛?/p>
Crimson鏉ヨ嚜浜嶴un鎹愯禒緇橝pache鐨凱rojectX欏圭洰錛孹erces鏉ヨ嚜IBM鎹愯禒緇橝pache鐨?span style="COLOR: #cc0000">XML4J欏圭洰錛岀粨鏋淴erces鑳滃嚭錛屾垚浜咥pache XML灝忕粍鍏ㄥ姏寮鍙戠殑XML API錛岃孋rimon宸茬粡鏃╁氨涓嶅仛浜嗭紝濡備粖Xerces鍚嶆弧澶╀笅錛屽埌澶勯兘鏄湪鐢╔erces DOM鍜孲AX瑙f瀽鍣紝鍙湁Sun涓嶆湇姘旓紝闈炶鍦↗DK1.4閲岄潰浣跨敤榪囨椂鐨凜rimson錛岃浜烘劅瑙夊儚鏄湪璧屾皵涓鏍鳳紝鐪熸槸璁╀漢鍙滃張鍙皵錛佷笉榪嘔BM鍙戣JDK鐢ㄧ殑XML 瑙f瀽鍣ㄨ嚜鐒舵槸Xerces銆?/p>
鐢變簬JDK鐨凜lass Loader鐨勪紭鍏堢駭鍏崇郴錛屽綋浣犻噰鐢↗AXP緙栧啓XML紼嬪簭鐨勬椂鍊欙紝鍗充嬌鎶奨erces鍖呭紩鍏LASSPATH錛孞DK榪樻槸浼?xì)椤藉浐鐨勪娇鐢–rimson錛岃繖涓鐐歸氳繃鎵撳紑JVM鐨剉erbose鍙傛暟鍙互瑙傚療鍒般備笉榪嘕DK涔熷厑璁鎬綘閲囩敤鍏跺畠鐨勮В鏋愬櫒錛屽洜姝ゆ垜浠彲浠ラ氳繃鍦↗RE\lib\鐩綍涓嬪緩涓涓猨axp.properties鐨勬枃浠訛紝鏉ユ浛鎹㈣В鏋愬櫒錛宩axp.properties鍐呭濡備笅錛?/p>
榪欐牱灝卞彲浠ヤ嬌鐢╔erces錛屽綋鐒朵綘蹇呴』榪樻槸瑕佹妸Xerces鍖呮斁鍒癈LASSPATH涓嬨?/p>
Sun鍦?span style="COLOR: #cc0000">XML棰嗗煙鎬繪槸鍚庣煡鍚庤錛岀瓑鍒癝un閲嶈XML鐨勬椂鍊欙紝XML鐨凙PI鏃╁氨婊″ぉ 椋炰簡錛屽挨鍏舵槸IBM鍏鋒湁闈炲父澶х殑棰嗗厛浼樺娍銆備笉榪嘢un鏄鑼冪殑鍒惰鑰咃紝浜庢槸鍙傝僕3C鐨勬爣鍑嗗埗璁簡JAXP瑙勮寖銆侸AXP涓嶅儚Xerces鍜孋rimon閭f牱錛屽畠鍙槸涓涓猻pec錛屾湰韜槸涓嶅仛浠諱綍浜嬫儏鐨勶紝瀹冪殑浣滅敤灝辨槸鎻愬嚭涓涓粺涓鐨勬帴鍙o紝璁╁叾瀹冪殑XML API閮芥潵閬靛驚JAXP緙栫▼錛岄偅涔堢敤JAXP鍐欏嚭鏉ョ殑紼嬪簭錛屽簳灞傜殑API鍙互浠繪剰鍒囨崲銆?/p>
鍏蜂綋鏉ヨJAXP鍖呮嫭浜嗗嚑涓伐鍘傜被錛岃繖灝辨槸JDK1.4閲岄潰鐨?span style="COLOR: #cc0000">javax.xml.parsers 鍖咃紝鐢ㄦ潵瀵繪壘絎﹀悎DOM鏍囧噯鐨?span style="COLOR: #cc0000">XML API瀹炵幇綾葷殑浣嶇疆錛涙澶朖AXP榪樺寘鎷竴鏁村interface錛岃繖灝辨槸JDK1.4閲岄潰鐨刼rg.w3c.dom閭e嚑涓寘銆傚伐鍘傜被璐熻矗鍔犺澆DOM鐨勫疄鐜扮被銆傞偅涔堝姞杞界殑瑙勫垯鏄粈涔堝憿錛?/p>
鎴戞槸閫氳繃闃呰JAXP鐨勬簮浠g爜鐭ラ亾鐨勶紝宸ュ巶綾婚鍏堜細(xì)鏍規(guī)嵁java鍛戒護(hù)琛屼紶鍏ョ殑鍙傛暟榪涜瀵繪壘錛岀劧鍚庡湪鏍規(guī)嵁JRE\lib\jaxp.properties涓畾涔夌殑瀹炵幇綾誨鎵撅紝鏈鍚庝粈涔堥兘鎵句笉鍒扮殑璇濓紝灝辯敤Crimson銆傛敞鎰廋rimons鏄敱Bootstrap Class Loader鏉oad鐨勶紝濡傛灉浣犱笉閫氳繃涓婇潰涓や釜鏂規(guī)硶鏉ユ敼鍙樺伐鍘傜殑瀵繪壘欏哄簭錛岄偅涔堥搧瀹氱敤Crimson浜?:( 褰撲綘涓ユ牸閲囩敤JAXP緙栫▼鐨勬椂鍊欙紝鏄伒寰猈3C鐨凞Om鏍囧噯鐨勶紝閭d箞鍦↗AXP搴曞眰浣犲疄闄呬笂鍙互浠繪剰鍒囨崲涓嶅悓鐨凞OM瀹炵幇錛屼緥濡俋erces錛屾垨鑰匔rimon錛屽啀鎴栬呭叾瀹冿紝鍒囨崲鏂規(guī)硶灝辨槸閰嶇疆jaxp.properties銆傚洜姝AXP灝辨槸涓浜涙爣鍑嗘帴鍙h屽凡銆?/p>
鑰孹erces鍜孋rimon涔熶笉鍗曞崟鏄竴涓狣OM瀹炵幇閭d箞綆鍗曪紝浠栦滑鏈韓瀹為檯涓婁篃鍖呭惈SAX瑙f瀽鍣ㄥ拰DOM瑙f瀽鍣ㄣ傛墍浠ヤ竴涓狫AXP紼嬪簭涓嬮潰鏈夊涓嬪眰嬈★細(xì) 鍙浣犵敤JAXP緙栫▼錛岄偅涔堜綘灝卞彲浠ュ垏鎹㈠埌Crimson涓婃潵 鍙﹀浣犱篃鍙互榪欐牱鏉ュ仛錛?/p>
涓嶈繃濡傛灉浣犵殑紼嬪簭涓嶅畨瑁匤AXP鏉ュ啓錛岄偅涔堝氨娌℃湁鍔炴硶鍒囨崲涓嶅悓鐨凞OM瀹炵幇浜嗐?/p>
W3C鐨凞OM鏍囧噯API闅劇敤鐨勮浜烘兂鎾炲錛屼簬鏄湁涓甯漢寮鍙?span style="COLOR: #cc0000">Java涓撶敤鐨?span style="COLOR: #cc0000">XML API鐩殑鏄負(fù)浜嗕究浜庝嬌鐢紝榪欏氨鏄痡dom鐨勭敱鏉ワ紝寮鍙戝埌涓鍗婄殑鏃跺欙紝鍙︿竴閮ㄥ垎浜哄張鍒嗕簡鍑烘潵錛屼粬浠湁鑷繁鐨勬兂娉曪紝浜庢槸浠栦滑灝卞幓寮鍙慸om4j錛屽艦鎴愪簡浠婂ぉ榪欐牱涓や釜API錛岃嚦浜庝粬浠箣闂寸殑鎬ц兘錛屽姛鑳戒箣姣旇緝鐪嬬湅涓婇潰鎴戞帹鑽愮殑鏂囩珷灝辯煡閬撲簡錛宩dom鍏ㄩ潰鎯ㄨ觸銆?/p>
jdom 鐩稿綋浜庝笂闈㈢殑 JAXP鎺ュ彛 錛?Xerces DOM瀹炵幇閮ㄥ垎錛屽畠鏈韓娌℃湁瑙f瀽鍣紝瀹冨彲浠ヤ嬌鐢╔erces鎴栬匔rimson鐨勮В鏋愬櫒錛屽氨鏄繖鏍鳳細(xì) dom4j 鍜宩dom綾諱技錛屼笉榪囦粬鑷繁緇戝畾浜嗕竴涓彨鍋欰lfred2鐨勮В鏋愬櫒錛屽姛鑳戒笉鏄緢鍏紝浣嗘槸閫熷害寰堝揩錛屽綋娌℃湁鍏跺畠鐨勮В鏋愬櫒鐨勬椂鍊欙紝dom4j灝嗕嬌鐢ˋlfred2瑙f瀽鍣紝濡備笅錛?/p>
鎴栬?/p>
浣犲湪SF涓婁笅杞界殑dom4j.jar鏄笉鍚?Alfred2瑙f瀽鍣ㄧ殑錛岃宒om4j-full.jar鍖呭惈浜?Alfred2瑙f瀽鍣紝鍦ㄨ繖縐嶆儏鍐典笅錛屽疄闄呬笂浣犱粈涔堜篃涓嶉渶瑕侊紝鍏夋槸涓涓猟om4j-full.jar灝卞叏閮ㄩ兘鍖呮嫭浜嗐?/p>
鍥犳鍙互鐪嬪嚭閲囩敤dom4j/jdom緙栧啓鐨勫簲鐢ㄧ▼搴忥紝宸茬粡涓嶅叿澶囧彲縐繪鎬т簡銆?/p>
Sun鏄疛AXP鏍囧噯鐨勫埗璁㈣咃紝鐢氳嚦寰堟墽钁楃殑鍦↗DK1.4閲岄潰緇戝畾Crimson DOM瀹炵幇鍜岃В鏋愬櫒錛岀劧鍚庡彲絎戠殑鏄紝Sun鑷繁鐨凧AXM RI绔熺劧涓嶆槸鐢↗AXP鍐欏嚭鏉ョ殑錛岃屾槸dom4j錛屽埗璁㈡爣鍑嗚澶у閬靛畧錛岃嚜宸卞嵈鐩戝畧鑷洍錛岃繖鏈厤澶涓嶈繃鍘諱簡鍚э紒 BTW: Hibernate涔熺敤鐨勬槸dom4j鏉ヨ鍙?span style="COLOR: #cc0000">XML閰嶇疆鏂囦歡錛屽浠婂凡緇忚秺鏉ヨ秺澶氱殑紼嬪簭綰風(fēng)悍閲囩敤dom4j錛屽鏋滀綘涓嶆槸閭d箞鍦ㄤ箮鍙Щ妞嶆э紝鎴戝己鐑堝緩璁綘閲囩敤dom4j銆?/p>
鑾峰緱騫跺畨瑁匤DOM
鍦╤ttp://jdom.org鍙互涓嬭澆JDOM鐨勬渶鏂扮増鏈備互JDOM beta8鐨?榪涘埗鐗堟湰涓轟緥銆備笅杞藉悗瑙e帇緙╋紝JDOM鐨刯ar鏂囦歡灝辨槸build鐩綍涓嬬殑鏂囦歡jdom.jar錛屽皢涔嬪姞鍏ョ被璺緞銆傚彟澶朖DOM榪橀渶瑕乴ib鐩綍涓嬮偅浜沯ar鏂囦歡濡倄erces.jar,jaxp.jar鐨勬敮鎸併傚鏋滃湪浣跨敤涓嚭鐜頒互涓嬮敊璇細(xì)
java.lang.NoSuchMethodError
鎴?nbsp;
java.lang.NoClassDefFoundError: org/xml/sax/SAXNotRecognizedException
浣犻渶瑕佷繚璇亁erces.jar鏂囦歡鍦–LASSPATH涓綅浜庡叾浠朮ML綾伙紝濡侸AXP鎴朇rimson涔嬪墠錛岃繖浜涚被鏂囦歡錛屽寘鎷互鍓嶈佺増鏈殑xerces錛屽彲鑳戒笉鏀寔SAX2.0鎴朌OM Level 2銆備簬鏄鑷翠簡涓婇潰鐨勯敊璇?nbsp;
涓涓畝鍗曠殑渚嬪瓙
JDOM鐨勫鐞嗘柟寮忔湁浜涚被浼間簬DOM錛屼絾瀹冧富瑕佹槸鐢⊿AX瀹炵幇鐨勶紝浣犱笉蹇呮媴蹇冨鐞嗛熷害鍜屽唴瀛樼殑闂銆傚彟澶栵紝JDOM涓嚑涔庢病鏈夋帴鍙o紝鐨勭被鍏ㄩ儴鏄疄瀹炲湪鍦ㄧ殑綾伙紝娌℃湁綾誨伐鍘傜被鐨勩?br>
涓嬮潰鏄疄渚嬬敤鐨刋ML鏂囦歡:
<?xml version="1.0" encoding="GBK"?>
<涔﹀簱>
<涔?gt;
<涔﹀悕>Java緙栫▼鍏ラ棬</涔﹀悕>
<浣滆?gt;寮犱笁</浣滆?gt;
<鍑虹増紺?gt;鐢?shù)瀛愬嚭鐗埥C?lt;/鍑虹増紺?gt;
<浠鋒牸>35.0</浠鋒牸>
<鍑虹増鏃ユ湡>2002-10-07</鍑虹増鏃ユ湡>
</涔?gt;
<涔?gt;
<涔﹀悕>XML鍦↗ava涓殑搴旂敤</涔﹀悕>
<浣滆?gt;鏉庡洓</浣滆?gt;
<鍑虹増紺?gt;甯屾湜鍑虹増紺?lt;/鍑虹増紺?gt;
<浠鋒牸>92.0</浠鋒牸>
<鍑虹増鏃ユ湡>2002-10-07</鍑虹増鏃ユ湡>
</涔?gt;
</涔﹀簱>
涓嬮潰鏄搷浣淴ML鏂囦歡鐨凚ean:
package xml;
/**
* XML鐨勮鍐欐搷浣淏ean
*/
import java.io.*;
import java.util.*;
import org.jdom.*;
import org.jdom.output.*;
import org.jdom.input.*;
import javax.servlet.*;
import javax.servlet.http.*;
public class XmlBean{
private String bookname,author,pub,price,pubdate;
public String getbookname() { return bookname;}
public String getauthor() { return author;}
public String getpub() { return pub;}
public String getprice() { return price;}
public String getpubdate() { return pubdate;}
public void setbookname(String bookname) { this.bookname =bookname ; }
public void setauthor(String author) { this.author =author; }
public void setpub(String pub) { this.pub =pub ; }
public void setprice(String price) { this.price =price ; }
public void setpubdate(String pubdate) { this.pubdate =pubdate ; }
public XmlBean(){}
/**
* 璇誨彇XML鏂囦歡鎵鏈変俊鎭?br>*/
public Vector LoadXML(String path)throws Exception{
Vector xmlVector = null;
FileInputStream fi = null;
try{
fi = new FileInputStream(path);
xmlVector = new Vector();
SAXBuilder sb = new SAXBuilder();
Document doc = sb.build(fi);
Element root = doc.getRootElement(); //寰楀埌鏍瑰厓绱?br>List books = root.getChildren(); //寰楀埌鏍瑰厓绱犳墍鏈夊瓙鍏冪礌鐨勯泦鍚?br>Element book =null;
XmlBean xml =null;
for(int i=0;i<books.size();i++){
xml = new XmlBean();
book = (Element)books.get(i ); //寰楀埌絎竴鏈功鍏冪礌
xml.setbookname(book.getChild("涔﹀悕").getText());
xml.setauthor(book.getChild("浣滆?).getText());
xml.setpub(book.getChild("鍑虹増紺?).getText());
xml.setprice(book.getChild("浠鋒牸").getText());
xml.setpubdate(book.getChild("鍑虹増鏃ユ湡").getText());
xmlVector.add(xml);
}
}
catch(Exception e){
System.err.println(e+"error");
}
finally{
try{
fi.close();
}
catch(Exception e){
e.printStackTrace();
}
}
return xmlVector;
}
/**
* 鍒犻櫎XML鏂囦歡鎸囧畾淇℃伅
*/
public static void DelXML(HttpServletRequest request)throws Exception{
FileInputStream fi = null;
FileOutputStream fo = null;
try{
String path=request.getParameter("path");
int xmlid=Integer.parseInt(request.getParameter("id"));
fi = new FileInputStream(path);
SAXBuilder sb = new SAXBuilder();
Document doc = sb.build(fi);
Element root = doc.getRootElement(); //寰楀埌鏍瑰厓绱?br>List books = root.getChildren(); //寰楀埌鏍瑰厓绱犳墍鏈夊瓙鍏冪礌鐨勯泦鍚?br>books.remove(xmlid);//鍒犻櫎鎸囧畾浣嶇疆鐨勫瓙鍏冪礌
String indent = " ";
boolean newLines = true;
XMLOutputter outp = new XMLOutputter(indent,newLines,"GBK");
fo=new FileOutputStream(path);
outp.output(doc,fo);
}
catch(Exception e){
System.err.println(e+"error");
}
finally{
try{
fi.close();
fo.close();
}
catch(Exception e){
e.printStackTrace();
}
}
}
/**
* 娣誨姞XML鏂囦歡鎸囧畾淇℃伅
*/
public static void AddXML(HttpServletRequest request)throws Exception{
FileInputStream fi = null;
FileOutputStream fo = null;
try{
String path=request.getParameter("path");
fi = new FileInputStream(path);
SAXBuilder sb = new SAXBuilder();
Document doc = sb.build(fi);
Element root = doc.getRootElement(); //寰楀埌鏍瑰厓绱?br>List books = root.getChildren(); //寰楀埌鏍瑰厓绱犳墍鏈夊瓙鍏冪礌鐨勯泦鍚?br>String bookname=request.getParameter("bookname");
String author=request.getParameter("author");
String price=request.getParameter("price");
String pub=request.getParameter("pub");
String pubdate=request.getParameter("pubdate");
Text newtext;
Element newbook= new Element("涔?);
Element newname= new Element("涔﹀悕");
newname.setText(bookname);
newbook.addContent(newname);
Element newauthor= new Element("浣滆?);
newauthor.setText(author);
newbook.addContent(newauthor);
Element newpub= new Element("鍑虹増紺?);
newpub.setText(pub);
newbook.addContent(newpub);
Element newprice= new Element("浠鋒牸");
newprice.setText(price);
newbook.addContent(newprice);
Element newdate= new Element("鍑虹増鏃ユ湡");
newdate.setText(pubdate);
newbook.addContent(newdate);
books.add(newbook);//澧炲姞瀛愬厓绱?br>String indent = " ";
boolean newLines = true;
XMLOutputter outp = new XMLOutputter(indent,newLines,"GBK");
fo=new FileOutputStream(path);
outp.output(doc,fo);
}
catch(Exception e){
System.err.println(e+"error");
}
finally{
try{
fi.close();
fo.close();
}
catch(Exception e){
e.printStackTrace();
}
}
}
/**
* 淇敼XML鏂囦歡鎸囧畾淇℃伅
*/
public static void EditXML(HttpServletRequest request)throws Exception{
FileInputStream fi = null;
FileOutputStream fo = null;
try{
String path=request.getParameter("path");
int xmlid=Integer.parseInt(request.getParameter("id"));
fi = new FileInputStream(path);
SAXBuilder sb = new SAXBuilder();
Document doc = sb.build(fi);
Element root = doc.getRootElement(); //寰楀埌鏍瑰厓绱?br>List books = root.getChildren(); //寰楀埌鏍瑰厓绱犳墍鏈夊瓙鍏冪礌鐨勯泦鍚?br>Element book=(Element)books.get(xmlid);
String bookname=request.getParameter("bookname");
String author=request.getParameter("author");
String price=request.getParameter("price");
String pub=request.getParameter("pub");
String pubdate=request.getParameter("pubdate");
Text newtext;
Element newname= book.getChild("涔﹀悕");
newname.setText(bookname);//淇敼涔﹀悕涓烘柊鐨勪功鍚?br>Element newauthor= book.getChild("浣滆?);
newauthor.setText(author);
Element newpub= book.getChild("鍑虹増紺?);
newpub.setText(pub);
Element newprice= book.getChild("浠鋒牸");
newprice.setText(price);
Element newdate= book.getChild("鍑虹増鏃ユ湡");
newdate.setText(pubdate);
//books.set(xmlid,book);//淇敼瀛愬厓绱?br>String indent = " ";
boolean newLines = true;
XMLOutputter outp = new XMLOutputter(indent,newLines,"GBK");
fo=new FileOutputStream(path);
outp.output(doc,fo);
}
catch(Exception e){
System.err.println(e+"error");
}
finally{
try{
fi.close();
fo.close();
}
catch(Exception e){
e.printStackTrace();
}
}
}
}
涓嬮潰鏄搷浣滅殑jsp鏂囦歡:
<%@ page contentType="text/html;charset=GBK" %>
<%@ page language="java" import="java.util.*,xml.*"%>
<html>
<head>
<title>璇誨彇XML鏂囦歡璧勬枡</title>
</head>
<body>
<h3 align="center">JDOM鎿嶄綔XML鏂囦歡</h3>
<p align="center">璇誨彇XML鏂囦歡涓殑鎵鏈夎祫鏂?lt;/p>
<center>
<table border="1" cellpadding="0" cellspacing="1" style="border-collapse: collapse" width="80%" id="AutoNumber1">
<tr>
<td align="center" width="92">涔﹀悕</td>
<td align="center" width="92">浣滆?lt;/td>
<td align="center" width="92">鍑虹増紺?lt;/td>
<td align="center" width="92">浠鋒牸</td>
<td align="center" width="92">鍑虹増鏃ユ湡</td>
<td align="center" width="94">鎿嶄綔</td>
</tr>
</table>
<%
String path = application.getRealPath("/test/xml/")+"testC.xml";
XmlBean xml=new XmlBean();
Vector xmlall=xml.LoadXML(path);
for(int i=0;i<xmlall.size();i++){
xml=(XmlBean)xmlall.elementAt(i );
/**out.println("涔﹀悕:"+xml.getbookname()+"<br>");
out.println("浣滆?"+xml.getauthor()+"<br>");
out.println("鍑虹増紺?"+xml.getpub()+"<br>");
out.println("浠鋒牸:"+xml.getprice()+"<br>");
out.println("鍑虹増鏃ユ湡:"+xml.getpubdate()+"<br><br>");
*/
%>
<table border="1" cellpadding="0" cellspacing="1" style="border-collapse: collapse" width="80%" id="AutoNumber2">
<tr>
<td align="center" width="92"><%=xml.getbookname()%></td>
<td align="center" width="92"><%=xml.getauthor()%></td>
<td align="center" width="92"><%=xml.getpub()%></td>
<td align="center" width="92"><%=xml.getprice()%></td>
<td align="center" width="92"><%=xml.getpubdate()%></td>
<td align="center" width="94"><a href="xmlok.jsp?act=del&id=<%=i%>&path=<%=path%>">鍒犻櫎</a></td>
</tr>
</table>
<%}%>
</center>
<form method="POST" action="xmlok.jsp">
<p align="center">
<input type="radio" value="add" checked name="act">娣誨姞璧勬枡 <input type="radio" value="edit" name="act">緙栬緫璧勬枡
搴?nbsp;鍙?<select size="1" name="id">
<%for(int i=0;i<xmlall.size();i++){%>
<option value="<%=i%>">絎?lt;%=i+1%>鏉?lt;/option>
<%}%>
</select><br>
涔?nbsp;鍚?<input type="text" name="bookname" size="20"><br>
浣?nbsp;鑰?<input type="text" name="author" size="20"><br>
鍑虹増紺?<input type="text" name="pub" size="20"><br>
浠?nbsp;鏍?<input type="text" name="price" size="20"><br>
鏃?nbsp;鏈?<input type="text" name="pubdate" size="20"></p>
<input type="hidden" name="path" value="<%=path%>">
<p align="center"><input type="submit" value="鎻愪氦" name="B1"><input type="reset" value="閲嶇疆" name="B2"></p>
</form>
</body>
</html>
涓嬮潰鏄鐞嗕笂涓鏂囦歡鎻愪氦鐨刯sp鏂囦歡:
<%@ page contentType="text/html;charset=GBK" %>
<%@ page language="java" import="xml.*"%>
<%if(request.getParameter("act")!=null && request.getParameter("act").equals("add")){
XmlBean.AddXML(request);
out.println("<p align=’center’><br><br>娣誨姞鎴愬姛<br><br><a href=’’>榪斿洖</a>");
}
else if(request.getParameter("act")!=null && request.getParameter("act").equals("del")){
XmlBean.DelXML(request);
out.println("<p align=’center’><br><br>鍒犻櫎鎴愬姛<br><br><a href=’’>榪斿洖</a>");
}
else if(request.getParameter("act")!=null && request.getParameter("act").equals("edit")){
XmlBean.EditXML(request);
out.println("<p align=’center’><br><br>淇敼鎴愬姛<br><br><a href=’’>榪斿洖</a>");
}
else{out.print("<p align=’center’><br><br>闈炴硶鎿嶄綔<br><br><a href=’’>榪斿洖</a>");}
]]>涓銆丆rimson鍜孹erces鎭╀粐褰?/h4>
javax.xml.parsers.DocumentBuilderFactory=org.apache.xerces.jaxp.DocumentBuilderFactoryImpl
javax.xml.parsers.SAXParserFactory=org.apache.xerces.jaxp.SAXParserFactoryImpl
浜屻丣AXP鐨勫濮楁潵榪?/h4>
涓夈丏OM瑙f瀽鍣ㄥ拰DOM API
JAXP搴旂敤紼嬪簭 -> JAXP鎺ュ彛 -> Xerces DOM瀹炵幇 -> Xerces DOM/SAX 瑙f瀽鍣?
JAXP搴旂敤紼嬪簭 -> JAXP鎺ュ彛 -> Crimson DOM瀹炵幇 -> Crimson DOM/SAX 瑙f瀽鍣?
JAXP搴旂敤紼嬪簭 -> JAXP鎺ュ彛 -> Crimson DOM瀹炵幇 -> Xerces DOM/SAX 瑙f瀽鍣?
鍥涖佷笉鏄爣鍑嗙殑dom4j鍜宩dom
jdom搴旂敤紼嬪簭 -> jdom API -> Xerces/Crimson瑙f瀽鍣?
dom4j搴旂敤紼嬪簭 -> dom4j API -> Xerces/Crimson瑙f瀽鍣?
dom4j搴旂敤紼嬪簭 -> dom4j API -> Alfred2瑙f瀽鍣?
浜斻佸皬鎻掓洸
]]>
import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import org.jdom.Document;
import org.jdom.Element;
import org.jdom.output.XMLOutputter;
public class Test {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
//System.out.print(new MD5().getMD5ofStr(""));
sampleJDom();
}
/*
* jdom
*/
public static void sampleJDom()
{
//鏂板緩鏂囨。瀵硅薄
Document doc = new Document();
//鏂板緩鏍硅妭鐐?br> Element book = new Element("book");
book.setAttribute("title", "Programming with Ajax");
Element chapter1 = new Element("chapter");
chapter1.setAttribute("name", "Chapter1 About Ajax");
Element chapter2 = new Element("chapter");
chapter2.setAttribute("name", "Chapter2 B/S Structure");
Element section1 = new Element("section");
section1.addContent("What is Ajax?");
Element section2 = new Element("section");
section2.addContent("Definiens of Ajax");
Element section3 = new Element("section");
section3.addContent("HTTP Protocal");
Element section4 = new Element("section");
section4.addContent("Web Design");
//灝嗗瓙鑺傜偣鍔犲叆鍒扮埗鑺傜偣
chapter1.addContent(section1);
chapter1.addContent(section2);
chapter2.addContent(section3);
chapter2.addContent(section4);
book.addContent(chapter1);
book.addContent(chapter2);
doc.addContent(book);
//灝嗘枃妗h緭鍑哄埌鎺у埗鍙?
XMLOutputter outputter = new XMLOutputter();
try
{
outputter.output(doc, new FileOutputStream(new File("c:/a.xml")));
System.out.println("杈撳嚭鍒版枃浠舵垚鍔?");
outputter.output(doc, System.out);
System.out.println("杈撳嚭鍒版帶鍒跺彴!");
}catch(IOException ex)
{}
}
}