锘??xml version="1.0" encoding="utf-8" standalone="yes"?>
java涓浉瀵硅礬寰勶紝緇濆璺緞闂鎬葷粨(verygood)
http://www.tkk7.com/efine66/archive/2006/12/12/87097.html
聽濡備綍鍦╦ava涓嬌鐢ㄧ浉瀵硅礬寰勶紵
http://dev.csdn.net/develop/article/39/39681.shtm
閫氳繃铏氭嫙璺緞鎴栫浉瀵硅礬寰勮鍙栦竴涓獂ml鏂囦歡錛岄伩鍏嶇‖緙栫爜
http://www.128kj.com/article/article5/7D66983DD9DD98A7753422A3A527FB6D.htm?id=438
java浣跨敤鐩稿璺緞璇誨彇xml鏂囦歡錛?br />涓銆亁ml鏂囦歡涓鑸殑瀛樻斁浣嶇疆鏈変笁涓細
1.鏀懼湪WEB-INF涓嬶紱
2.xml鏂囦歡鏀懼湪/WEB-INF/classes鐩綍涓嬫垨classpath鐨刯ar鍖呬腑錛?br />3.鏀懼湪涓庤В鏋愬畠鐨刯ava綾誨悓涓涓寘涓紝涓嶄竴瀹氭槸classpath錛?/font>
浜屻佺浉瀵瑰簲鐨勪袱縐嶄嬌鐢ㄧ浉瀵硅礬寰勭殑璇誨彇鏂規硶錛?/font>
鏂規硶涓錛氾紙鏈獙璇侊級
灝唜ml鏂囦歡鏀懼湪WEB-INF鐩綍涓嬶紝鐒跺悗
紼嬪簭浠g爜錛?
InputStream is=getServletContext().getResourceAsStream( "/WEB-INF/xmlfile.xml" );
鏂規硶浜岋細灝唜ml鏂囦歡鏀懼湪/WEB-INF/classes鐩綍涓嬫垨classpath鐨刯ar鍖呬腑錛屽垯鍙互浣跨敤ClassLoader鐨勯潤鎬佹柟娉昰etSystemResourceAsStream(String s)璇誨彇錛?br />紼嬪簭浠g爜錛?br />String s_xmlpath="com\xml\hotspot.xml";
InputStream in=ClassLoader.getSystemResourceAsStream(s_xmlpath);
鏂規硶涓夛細xml鍦ㄩ殢鎰忔煇涓寘璺緞涓嬶細
String s_xmlpath="com\xml\hotspot.xml";
ClassLoader classLoader=HotspotXmlParser.class.getClassLoader();
InputStream in=classLoader.getResourceAsStream(s_xmlpath);
聽
闂2錛氳В鏋恱ml鏂囦歡鏃訛紝濡備綍鐢ㄧ浉瀵硅礬寰勬壘鍒拌鑷繁瀹氫箟鐨剎ml鏂囦歡錛?br />濡傛灉璇ml鏂囦歡鍜宩sp鏂囦歡鏀懼湪涓璧鳳紝閭d箞鍙互閫氳繃jsp鐨凥ttpServletRequest鏂瑰紡鏍規嵁鐩稿璺緞璇誨彇錛屼絾鏄嫢璇ml鏂囦歡鍜宩ava鏂囦歡鍦ㄥ悓涓涓寘涓張濡備綍澶勭悊鍛紵鍙﹀錛屼嬌鐢℉ttpServletRequest鏂瑰紡鐨刯ava緙栫爜鍏蜂綋鏄浣曞疄鐜扮殑鍛紵
聽
dom4j API鍜屾簮鐮併佷緥瀛愪笅杞界綉鍧:
http://sourceforge.net/project/showfiles.php?group_id=16035
涓嬭澆dom4j-1.6.1.zip錛氬甫婧愮爜鍜屼緥瀛愩?/p>
涓.dom4j瑙f瀽xml
榪欓儴鍒嗗唴瀹逛箣鍓嶅凡緇忓啓榪囷紝浣滀負瀹屾暣鎬э紝浠呬粎鍦ㄦ鍒楀嚭涓婃鐨勪唬鐮侊細
package com.ict.shrd;
//import org.dom4j.Document;
import org.dom4j.Element;
import org.dom4j.Attribute;
import java.util.List;
import java.util.Iterator;
import org.dom4j.dom.DOMDocument;
import org.dom4j.io.XMLWriter;
import java.io.*;
import org.dom4j.DocumentException;
import org.dom4j.io.SAXReader;
import java.io.*;
import java.util.*;
import org.dom4j.*;
import org.dom4j.io.*;
public class HjbhTableNameList{
聽private String enName="";
聽private String cnName="";
聽private HashMap map=new HashMap();
聽public String getEnName() {
聽聽return enName;
聽}
聽public HashMap getTableListFromXml(File f){
聽聽try{
聽聽聽SAXReader reader = new SAXReader();
聽聽聽Document doc = reader.read(f);
聽聽聽Element root = doc.getRootElement();
聽聽聽Element firstChild=root.element("hjbh");
聽聽聽for (Iterator i = firstChild.elementIterator("tableName"); i.hasNext();) {
聽聽聽聽Element foo = (Element) i.next();
聽聽聽聽this.enName=foo.attributeValue("enName");
聽聽聽聽this.cnName=foo.getText();
聽聽聽聽map.put(enName,cnName);
聽聽聽}
聽聽} catch (Exception e) {
聽聽聽e.printStackTrace();
聽聽 聽聽 }
聽聽return map;
聽}
聽public static void main(String arge[]) {
聽聽File f = new File("E:\\jiangcm\\workspace-forict\\JavaBasis\\xml\\shrd.xml");
聽聽HashMap map=new HashMap();
聽聽HjbhTableNameList tableList=new HjbhTableNameList();
聽聽map=tableList.getTableListFromXml(f);
聽聽Set enNameSet=map.keySet();
聽聽String enName="";
聽聽for (Iterator i = enNameSet.iterator(); i.hasNext();) {
聽聽聽enName=(String)i.next();
聽聽聽//System.out.println(enName);
聽聽聽System.out.println(map.get(enName));
聽聽}
聽聽
聽 聽
聽 }
}
浜屻俤om4j鐢熸垚xml鏍戯細
瀹屾暣浠g爜:
package xml;
import org.dom4j.*;
import java.io.*;
public class XmlCreator{
聽 public void createXML(String fileName) {
聽聽聽聽聽聽聽聽 Document doc = org.dom4j.DocumentHelper.createDocument();
聽聽聽聽聽聽聽聽 Element root = doc.addElement("book");
聽聽聽聽聽聽聽聽 root.addAttribute("name", "鎴戠殑鍥句功");
聽
聽聽聽聽聽聽聽聽 Element childTmp;
聽聽聽聽聽聽聽聽 childTmp = root.addElement("price");
聽聽聽聽聽聽聽聽 childTmp.setText("21.22");
聽
聽聽聽聽聽聽聽聽 Element writer = root.addElement("author");
聽聽聽聽聽聽聽聽 writer.setText("鏉庡洓");
聽聽聽聽聽聽聽聽 writer.addAttribute("ID", "001");
聽
聽聽聽聽聽聽聽聽 try {
聽聽聽聽聽聽聽聽聽聽聽聽 //娉ㄦ剰榪欓噷浣跨敤鐨勬槸FileOutputStream錛岃屼笉鏄疐ileWriter,鍥犱負娑夊強鍒扮紪鐮侀棶棰?br />聽聽聽聽聽聽聽聽聽聽聽聽 //璇︾粏瑙佲渄om4j緙栫爜闂瑙e喅鈥濈瘒銆?/p>
聽聽聽聽聽聽聽聽聽聽聽聽 org.dom4j.io.XMLWriter xmlWriter = new org.dom4j.io.XMLWriter(
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 new FileOutputStream(fileName));
聽聽聽聽聽聽聽聽聽聽聽聽 xmlWriter.write(doc);
聽聽聽聽聽聽聽聽聽聽聽聽 xmlWriter.close();
聽聽聽聽聽聽聽聽 }
聽聽聽聽聽聽聽聽 catch (Exception e) {
聽聽聽聽聽聽聽聽聽聽聽聽 System.out.println(e);
聽聽聽聽聽聽聽聽 }
聽聽聽聽 }
聽 public static void main(String[] args){
聽聽 XmlCreator xmlCreator=new XmlCreator();
聽聽 xmlCreator.createXML("E:\\jiangcm\\book.xml");
聽 }
}
dom4j 鍜?xerces-2.4.0 鍒╃敤schema楠岃瘉xml闂
http://www2.matrix.org.cn/thread.shtml;jsessionid=E282E65FCE68F3A4D25B0962DCE6F813?topicId=45719&forumId=13
DOM4J 楠岃瘉XML Schema 錛堟垜瑕佺殑鎴愬姛 鐨刡log錛?br />http://kingofhawks.spaces.live.com/?_c11_BlogPart_blogpart=blogview&_c=BlogPart&partqs=cat%3d%25e8%25ae%25a1%25e7%25ae%2597%25e6%259c%25ba%25e4%25b8%258e%2bInternet
Xerces-Java 2 涓殑 XML Schema 楠岃瘉 (鐧誨綍錛?a href="mailto:jchunmei19@126.com/05602050">jchunmei19@126.com/05602050)
http://www-128.ibm.com/developerworks/cn/views/xml/tutorials.jsp?cv_doc_id=84985
聽
xsd楠岃瘉
涓錛巎ava涓浣曚嬌鐢╠om4j鐨凷AXReader瀹炵幇楠岃瘉錛?/p>
1.xml楠岃瘉鐢ㄤ簬楠岃瘉絎﹀悎xml璇硶鏍煎紡鐨剎ml鏂囦歡鏄惁絎﹀悎鐗瑰畾鐨剎ml Schema浠ュ強鏁版嵁綾誨瀷絳夛紝xml楠岃瘉涓昏鏈変袱縐嶆柟寮忥紝DTD鍜孹SD錛岀幇閲囩敤鐨勬槸XSD鏂瑰紡銆倄sd鏂囦歡鐨勮娉曟牸寮忓拰緙栧啓鍙傝冣渪sd瀛︿範絎旇鈥濊繖綃囷紝鐜板湪浠嬬粛鍑嗗濂戒簡xsd鏂囦歡涔嬪悗錛宩ava涓浣曚嬌鐢╠om4j鐨凷AXReader瀹炵幇楠岃瘉銆備笅闈㈣繘鍏ユ鏂囷細
2.浠諱綍鎶鏈殑浠嬬粛錛屼唬鐮侀兘鏄渶鐩磋鐨勶紝涓嬮潰灝辨潵鐩存帴鐪婼AXReader瀹炵幇楠岃瘉鐨勪唬鐮侊細 聽聽XMLErrorHandler errorHandler = new XMLErrorHandler(); 3.瀵逛笂榪頒唬鐮佺殑娉ㄩ噴錛?/p>
涓昏鎬濊礬錛氳緗甋AXReader鏀寔楠岃瘉 -銆夊緱鍒皒sd鏂囦歡鐨勮礬寰?-銆夎鍏ヨ楠岃瘉鐨剎ml鏂囦歡 -銆塐K錛侊紱 楠岃瘉嫻佺▼錛?/p>
-銆夎緗敮鎸侀獙璇侊紱 -銆夎緗敮鎸侀獙璇佺殑鍑犱釜feature鐨勫鹼紱 -銆夎緗畑sd鏂囦歡璺緞鐨凱roperty鍊鹼紝榪欐牱灝卞彲浠ヤ緷鎹畑sd鏂囦歡榪涜楠岃瘉浜嗭紱 -銆夎鍏ヨ楠岃瘉鐨?xml鏂囦歡鎴杧ml鏍煎紡鐨勫瓧絎︿覆錛?/p>
*鑻ラ獙璇佺殑鏄?xml鏂囦歡錛屽垯reader.read(param)涓殑param涓簒ml鏂囦歡鐨勮礬寰勶紝榪欎釜xml鏂囦歡鐨勮礬寰勫簲璇ヨ緗負鐩稿璺緞錛涳紙xml鐩稿璺緞濡備綍鑾峰彇鍜岃〃紺鴻繖涓棶棰樻湁寰呰В鍐籌級 *鑻ラ獙璇佺殑鏄瓧絎︿覆錛屽垯瑕佹妸瀛楃涓茶漿鎹負InputStream綾誨瀷錛岃繖鏄痳ead鏂規硶鐨勫弬鏁拌姹傘傦紙璇﹁dom4j api doc錛? 閭d箞鎬庝箞鎶婂瓧絎︿覆杞崲涓篒nputStream綾誨瀷鍛紵 娉曚竴錛?/p>
鎴戜滑鐭ラ亾錛孊yteArrayInputStream(byte[] buf)鏂規硶鍙互浣縝yte瀛楄妭鐮佽漿涓篒nputStream嫻侊紝閭d箞鎴戜滑鍏堥氳繃getBytes()鏂規硶鎶婂瓧絎︿覆杞負byte[]綾誨瀷錛屽啀閫氳繃ByteArrayInputStream(byte[] buf)鏂規硶杞負InputStream嫻佸氨ok浜嗭紒 String xmldescription = (String) obj; 聽 娉曚簩錛?br />InputStream in=TAEncodeDecoderFactory.class.getResourceAsStream("encoder_decoder_mapping.xml");
-銆墄ml validation is ok錛?/p>
浜?鍐呭琛ュ厖錛?/p>
鍙傝冭祫鏂欌淒OM4J 楠岃瘉XML Schema 錛堟垜瑕佺殑鎴愬姛 鐨刡log錛?br />http://kingofhawks.spaces.live.com/?_c11_BlogPart_blogpart=blogview&_c=BlogPart&partqs=cat%3d%25e8%25ae%25a1%25e7%25ae%2597%25e6%259c%25ba%25e4%25b8%258e%2bInternet鈥濅腑鎻愬埌鈥滃浣曡鍙朇lass path涓嬬殑xsd鏂囦歡:闇瑕佸疄鐜癊ntityResolver 鎺ュ彛,鍦╮esolveEntity()涓鍙栧綋鍓嶇被璺緞涓嬬殑xsd鏂囦歡,騫惰繑鍥濱nputSource instance.鈥濈殑闂錛屼笅闈㈣皥璋堝EntityResolver鐨勭悊瑙o細 榪欐浠g爜鏄叧浜庡疄浣撹В鏋愬櫒鐢ㄦ潵瑙f瀽澶栭儴瀹炰綋寮曠敤鐨勶紝鍦ㄨ繖閲屽茍涓嶉渶瑕併?/p>
娉ㄩ噴錛?br />1.鍏充簬浠涔堟槸瀹炰綋錛屼粈涔堟槸澶栭儴瀹炰綋錛岃瑙佽祫鏂欙細 2.鍏充簬瀹炰綋瑙f瀽鍣ㄥ浣曚嬌鐢紝璇﹁璧勬枡錛?br />鎶宸э細浣跨敤瀹炰綋瑙f瀽鍣?br />http://www-128.ibm.com/developerworks/cn/xml/tips/x-tipent/index.html
聽public static boolean isXmlOK(String xsdFile, byte[] tagetXml) throws SAXException, IOException, DocumentException
聽{
聽聽boolean flag = true;
聽聽SAXReader reader = new SAXReader();
聽聽reader.setValidation(true);
聽聽
聽聽reader.setFeature("聽聽reader.setFeature("聽聽reader.setProperty("聽聽//reader.setProperty("
聽聽reader.setErrorHandler(errorHandler);
聽聽InputStream in = new ByteArrayInputStream(tagetXml);
聽聽InputStreamReader utf8In=new InputStreamReader(in,"utf-8");
聽聽//Document document = reader.read(in);
聽聽reader.read(utf8In);
聽聽XMLWriter writer = new XMLWriter(OutputFormat.createPrettyPrint());
聽聽if (errorHandler.getErrors().hasContent()) {
聽聽聽flag = false;
聽聽聽聽聽 //writer.write(errorHandler.getErrors());
聽聽} else {
聽聽聽聽聽 System.out.println("Xml is OK!.");
聽聽}
聽聽return flag;
聽}
SAXReader reader = new SAXReader();
reader.setValidation(true);
娉ㄦ槑錛歋AXReader鐨勫悇涓嚱鏁扮殑浣滅敤鍜岀敤娉曡瑙乨om4j api doc銆?/p>
璇硶鏍煎紡錛歱ublic void setProperty(java.lang.String name,java.lang.Object value)
byte[] xmlMsgBytes =xmldescription.getBytes();
鈥︹?br />InputStream in = new ByteArrayInputStream(xmlMsgBytes);
-銆夎繖鏍稴AXReader灝卞彲浠ユ牴鎹畑sd鏂囦歡瀵規墍璇誨叆鐨剎ml淇℃伅榪涜楠岃瘉浜嗭紒
-銆夋帴涓嬫潵錛岃繕鍙互浣跨敤XMLErrorHandler鍜孹MLWriter榪欎袱涓被鍦ㄦ帶鍒跺彴杈撳嚭閿欒鎻愮ず淇℃伅錛?/p>
xml瀹炵敤澶у叏
http://phpso.com/data/htm/XML/408.htm
涓?灝氭湭瑙e喅鐨勯棶棰橈細
濡備綍鑾峰彇xml鐩稿璺緞錛?br />
Dom4j 緙栫爜闂褰誨簳瑙e喅 浣滆咃細lonsen
http://www.5inet.net/Develop/Java/036579,Dom4j_BianMaWenDiCheDeJieJue.aspx
鈥滀腑鏂囬棶棰樻病鍟嗛噺鈥濅箣Dom4j涓殑緙栫爜闂
浣滆? 鐩涘繝鑹?
http://blog.lupaworld.com/blog/htm/do_showone/tid_2261.html
JAVA緙栫爜闂鐨勪竴浜涚悊瑙?br />http://www.jspcn.net/htmlnews/11049393353751902.html
鐢╠om4j瑙f瀽涓枃瀛楃鏃訛紝鍑虹幇org.dom4j.DocumentException: Invalid byte 1 of 1-byte UTF-8 sequence.鍚勪綅甯皬寮熺湅鐪?br />http://dev.9983.com/ku/5403/4683267.asp
鑷繁鐨勬葷粨錛?br />1銆佲渙rg.dom4j.DocumentException: Invalid byte 1 of 1-byte UTF-8 sequence.鈥濆紓甯稿垎鏋愬拰瑙e喅錛?br />鍒嗘瀽錛?br />璇ュ紓甯哥敱涓嬮潰鐨剅eader.read(file);璇彞鎶涘嚭錛?br />SAXReader reader = new SAXReader();
Document doc = reader.read(file);
浜х敓榪欎釜寮傚父鐨勫師鍥犳槸錛?br />鎵璇葷殑xml鏂囦歡瀹為檯鏄疓BK鎴栬呭叾浠栫紪鐮佺殑錛岃寈ml鍐呭涓嵈鐢?lt;?xml version="1.0" encoding="utf-8"?>鎸囧畾緙栫爜涓簎tf-8錛屾墍浠ュ氨鎶ュ紓甯鎬簡錛?/p>
娉ㄩ噴錛氬弬鑰冪綉涓婄殑銆奐ava/J2EE涓枃闂緇堟瀬瑙e喅涔嬮亾銆嬩竴鏂囷紝緙栫爜闂鍘熷洜搴旇鏄細鎿嶄綔緋葷粺緙栫爜涓篏BK錛岃寈ml鎸囧畾涓簎tf-8錛孲AXReader浣跨敤緋葷粺鐨勯粯璁ょ紪鐮丟BK錛屾墍浠ュ瓨鍦ㄩ渶瑕佽漿鎹㈢紪鐮佺殑闂錛屼篃灝辮嚜鐒朵細鍑虹幇涔辯爜浜嗭紒瑙e喅錛氳鏂囦歡緙栫爜鍜宩ava 鎿嶄綔璇ユ枃浠剁殑鎺ュ彛鐨勭紪鐮佷竴鑷達紱
瑙e喅錛?br />鎯呭喌涓錛氳xml鏂囦歡鐢眃om4j鐢熸垚錛?/p>
瑙e喅鏂規硶錛氱敤 org.dom4j.io.XMLWriter xmlWriter = new org.dom4j.io.XMLWriter(
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 new FileOutputStream(fileName));
浠f浛
聽xmlWriter = new XMLWriter(new FileWriter(fileName));
錛屾寚瀹氱紪鐮佷負utf-8鐢熸垚xml鏂囦歡錛?/p>
璇︾粏鍙傝冭祫鏂?錛?br />Dom4j 緙栫爜闂褰誨簳瑙e喅 浣滆咃細lonsen
http://www.5inet.net/Develop/Java/036579,Dom4j_BianMaWenDiCheDeJieJue.aspx
鎯呭喌浜?瑙f瀽浠巎sp欏甸潰涓鍙栧埌鐨勭敤鎴瘋緭鍏ョ殑xml鎻忚堪鍐呭鏃訛紝reader.read()鎶涘嚭寮傚父錛?/p>
瑙e喅鏂規硶錛?br />璋冪敤read鍓嶅厛鎶妜ml鍐呭杞負utf-8緙栫爜錛氾紙浣跨敤鏀寔緙栫爜鏍煎紡鐨勫嚱鏁幫級
聽 public void validate(FacesContext context, UIComponent component,聽 Object obj)聽
聽聽聽聽 throws ValidatorException {聽
聽聽
聽聽聽聽聽聽聽聽聽聽聽 String xmldescription = (String) obj; 聽
聽聽聽聽 byte[] bytes =xmldescription.getBytes();聽
聽聽聽聽聽聽聽聽聽聽聽 RelationXmlParser.isXmlOK("E:\\jiangcm\\templateXMLSchema.xsd",bytes);聽聽
聽聽聽聽 鈥︹?br />聽聽聽 }
聽public static boolean isXmlOK(String xsdFile, byte[] tagetXml) throws SAXException,聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 IOException, DocumentException
聽{
聽聽SAXReader reader = new SAXReader();
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 鈥︹?br />聽聽InputStream in = new ByteArrayInputStream(tagetXml);
聽聽InputStreamReader utf8In=new InputStreamReader(in,"utf-8");
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 鈥︹?br />聽聽聽聽聽聽聽 }
聽
鐤戦棶錛?br />1.濡備綍鍦ㄦ枃瀛椾笂瀹炵幇onClick浜嬩歡錛熸瘮濡傝錛屼竴鐐瑰嚮鈥滅幆澧冧繚鎶も濓紝灝卞嚭鐜版墍鏈夌殑琛ㄥ悕錛涗竴鐐瑰嚮鈥滆〃鍚嶁濓紝灝卞嚭鐜扮浉搴旂殑琛ㄦ暟鎹紱鍥犱負瀹冧笉鍍?lt;select>絳夋爣絳句竴鏍鳳紝鍙互鏍規嵁id灝辮兘鑾峰彇瀹冧滑鐨剉alue鍊鹼紱
聽
HashMap緗戝潃:
鏈夊叧HashMap鐨勪嬌鐢ㄩ棶棰?br />http://zhidao.baidu.com/question/3288995.html
HashMap浣跨敤涓渚?br />http://www.128kj.com/article/article1/62DE24F2E9419FA8D9386750E9F68451.htm?id=1342
http://leeboo.spaces.live.com/