xml相關(guān)技術(shù)文檔.doc_第1頁
xml相關(guān)技術(shù)文檔.doc_第2頁
xml相關(guān)技術(shù)文檔.doc_第3頁
xml相關(guān)技術(shù)文檔.doc_第4頁
xml相關(guān)技術(shù)文檔.doc_第5頁
已閱讀5頁,還剩21頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

Dom4j生成xml/* 建立document對象,一個xml文件可以看成一個文檔,所以必須先創(chuàng)建一個文檔*/ Document document = DocumentHelper.createDocument(); /* 建立XML 文檔的根books,對于一個xml文件有唯一的一個根元素,在dom4j中使用Element表示*/ Element booksElement = document.addElement(books); /* 根元素有了,我們在根元素下面添加一行注釋*/ booksElement.addComment(This is dom4j test.); /* 加入第一個book節(jié)點(diǎn),即根元素的第一個子節(jié)點(diǎn)或者是子元素.在這里返回添加的子節(jié)點(diǎn)的原因是因為子節(jié)點(diǎn)還有一個屬性需要添加*/ /Element bookElement= booksElement.addElement(book); /* 加入show屬性內(nèi)容,屬性使用attribute來表示*/ /bookElement.addAttribute(show, yes); /bookElement.addAttribute(look, www); /* 加入title 節(jié)點(diǎn),為第一個子節(jié)點(diǎn)的子節(jié)點(diǎn)*/ Element titleElement = booksElement.addElement(title); titleElement.setText(threw); Element textElement = booksElement.addElement(text); textElement.setText(內(nèi)容是我不知道該咋辦阿aaaa!);/*類似的完成后兩個節(jié)點(diǎn)*/ /* 類似的完成后兩個book */ /bookElement = booksElement.addElement(book); /bookElement.addAttribute(show,yes);例子package wsw;import java.io.FileOutputStream;import java.io.FileWriter; import java.io.Writer; import java.sql.Connection; import java.sql.DriverManager; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.ResultSetMetaData; import java.util.HashMap;import java.util.Map; import org.dom4j.Document; import org.dom4j.DocumentHelper; import org.dom4j.Element; import org.dom4j.io.OutputFormat; import org.dom4j.io.XMLWriter; import dao.ConnectionManagerDAO; /* * 作者:王樹偉 * 功能:根據(jù)主表生成xml文件 * 描述:dept emp之間的 * 時間:2010-12-8 * */public class CreateXML /* * 通過給定的表名導(dǎo)出所有數(shù)據(jù)生成xml文件 * param tableName 數(shù)據(jù)庫表名 */ public static void createXml(String tableName,String RECORDSNUM,Integer code) System.out.println(=轉(zhuǎn)換開始=); try / -jdbc代碼 Connection con=ConnectionManagerDAO.getConn(); /一手案卷 String sql = select e.* from + tableName + e where e.RECORDSNUM=+RECORDSNUM+ and e.UNITCODE=+code; PreparedStatement ps = con.prepareStatement(sql); ResultSet rs = ps.executeQuery(); / -使用DOM4J生成xml文件 Map recordmap=new HashMap(); Document doc = DocumentHelper.createDocument(); / 生成根節(jié)點(diǎn) Element root = doc.addElement(TB300103); root.addNamespace(xsi,/2001/XMLSchema-instance); while (rs.next() Element dept = root.addElement(HOUSERECORDCON); Element HouseNum = dept.addElement(HouseNum); getEle(HouseNum,rs.getObject(HOUSENUM); Element ReCordsNum = dept.addElement(ReCordsNum); getEle(ReCordsNum,rs.getObject(RECORDSNUM); Element HouseSeller = dept.addElement(HouseSeller); getEle(HouseSeller,rs.getObject(HOUSESELLER); Element HouseVendee = dept.addElement(HouseVendee); getEle(HouseVendee,rs.getObject(HOUSEVENDEE); Element Nationlity = dept.addElement(Nationlity); getEle(Nationlity,rs.getObject(NATIONLITY); Element ResidencePlaceCode = dept.addElement(ResidencePlaceCode); getEle(ResidencePlaceCode,rs.getObject(RESIDENCEPLACECODE); Element Idcertificate = dept.addElement(Idcertificate); getEle(Idcertificate,rs.getObject(IDCERTIFICATE); Element IdcertificateCode = dept.addElement(IdcertificateCode); getEle(IdcertificateCode,rs.getObject(IDCERTIFICATECODE); Element CoownerShip = dept.addElement(CoownerShip); getEle(CoownerShip,rs.getObject(COOWNERSHIP); Element SaleRegistDate = dept.addElement(SaleRegistDate); getEle(SaleRegistDate,rs.getObject(SALEREGISTDATE); Element PurchaseaMount = dept.addElement(PurchaseaMount); getEle(PurchaseaMount,rs.getObject(PURCHASEAMOUNT); Element PayMentType = dept.addElement(PayMentType); getEle(PayMentType,rs.getObject(PAYMENTTYPE); Element LoanMethod = dept.addElement(LoanMethod); getEle(LoanMethod,rs.getObject(LOANMETHOD); Element ContractNum = dept.addElement(ContractNum); getEle(ContractNum,rs.getObject(CONTRACTNUM); Element FreeRecordsDate = dept.addElement(FreeRecordsDate); getEle(FreeRecordsDate,rs.getObject(FREERECORDSDATE); Element CollectionCityCode = dept.addElement(CollectionCityCode); getEle(CollectionCityCode,rs.getObject(COLLECTIONCITYCODE); Element UnitCode = dept.addElement(UnitCode); getEle(UnitCode,rs.getObject(UNITCODE); Element OperateDate = dept.addElement(OperateDate); getEle(OperateDate,rs.getObject(OPERATEDATE); recordmap.put(RECORDSNUM, rs.getString(RECORDSNUM); recordmap.put(UNITCODE, rs.getString(UNITCODE); if(recordmap.get(RECORDSNUM)!=null | .equals(String)recordmap.get(RECORDSNUM) String sql1 = select t.* from TBWK_HOUSEPROPERTY t where t.RECORDSNUM=+(String)recordmap.get(RECORDSNUM)+ and t.UNITCODE=+Integer.parseInt(String)recordmap.get(UNITCODE); PreparedStatement ps1 = con.prepareStatement(sql1); ResultSet rsp = ps1.executeQuery(); while(rsp.next() Element HOUSEPROPERTIES = root.addElement(HOUSEPROPERTIES); Element HouseNum = HOUSEPROPERTIES.addElement(HouseNum); getEle(HouseNum,rsp.getObject(HOUSENUM); Element ReCordsNum = HOUSEPROPERTIES.addElement(ReCordsNum); getEle(ReCordsNum,rsp.getObject(RECORDSNUM); Element RegionCode = HOUSEPROPERTIES.addElement(RegionCode); getEle(RegionCode,rsp.getObject(REGIONCODE); Element HouseSit = HOUSEPROPERTIES.addElement(HouseSit); getEle(HouseSit,rsp.getObject(HOUSESIT); Element TotalFloors = HOUSEPROPERTIES.addElement(TotalFloors); getEle(TotalFloors,rsp.getObject(TOTALFLOORS); Element HouseArea = HOUSEPROPERTIES.addElement(HouseArea); getEle(HouseArea,rsp.getObject(HOUSEAREA); Element HouseNetarea = HOUSEPROPERTIES.addElement(HouseNetarea); getEle(HouseNetarea,rsp.getObject(HOUSENETAREA); Element PurposeCode = HOUSEPROPERTIES.addElement(PurposeCode); getEle(PurposeCode,rsp.getObject(PURPOSECODE); Element BuildingStruture = HOUSEPROPERTIES.addElement(BuildingStruture); getEle(BuildingStruture,rsp.getObject(BUILDINGSTRUTURE); Element LandCharacter = HOUSEPROPERTIES.addElement(LandCharacter); getEle(LandCharacter,rsp.getObject(LANDCHARACTER); Element NationalLandGetType = HOUSEPROPERTIES.addElement(NationalLandGetType); getEle(NationalLandGetType,rsp.getObject(NATIONALLANDGETTYPE); Element CollectiveLandUseType = HOUSEPROPERTIES.addElement(CollectiveLandUseType); getEle(CollectiveLandUseType,rsp.getObject(COLLECTIVELANDUSETYPE); Element LandCode = HOUSEPROPERTIES.addElement(LandCode); getEle(LandCode,rsp.getObject(LANDCODE); Element LandDuration = HOUSEPROPERTIES.addElement(LandDuration); getEle(LandDuration,rsp.getObject(LANDDURATION); Element HouseNatureCode = HOUSEPROPERTIES.addElement(HouseNatureCode); getEle(HouseNatureCode,rsp.getObject(HOUSENATURECODE); Element CompletedYear = HOUSEPROPERTIES.addElement(CompletedYear); getEle(CompletedYear,rsp.getObject(COMPLETEDYEAR); Element CollectionCityCode = HOUSEPROPERTIES.addElement(CollectionCityCode); getEle(CollectionCityCode,rsp.getObject(COLLECTIONCITYCODE); Element UnitCode = HOUSEPROPERTIES.addElement(UnitCode); getEle(UnitCode,rsp.getObject(UNITCODE); Element OperateDate = HOUSEPROPERTIES.addElement(OperateDate); getEle(OperateDate,rsp.getObject(OPERATEDATE); else System.out.println(=沒有數(shù)據(jù)=); / 寫入文件 這樣寫可以消除UTF-8亂碼情況 OutputFormat opf = OutputFormat.createPrettyPrint(); FileOutputStream fos = new FileOutputStream(src/ + tableName + .xml); XMLWriter xw = new XMLWriter(fos, opf); xw.write(doc); / 關(guān)閉文件流 xw.close(); rs.close(); ps.close(); con.close(); System.out.println(=生成完畢=); catch (Exception e) e.printStackTrace(); public static void getEle(Element e,Object column) if (column != null) e.setText(column + ); else /如果是空的,加屬性 e.addAttribute(xsi:nil, true); e.setText(); public static void main(String args) createXml(TBWK_HOUSERECORDCON,454,12); Dom4j解析xml文檔根據(jù)java反射解析出來的數(shù)據(jù)直接封裝成java對象。import java.lang.reflect.Field;import java.lang.reflect.InvocationTargetException;import java.lang.reflect.Method;import java.util.ArrayList;import java.util.HashMap;import java.util.Iterator;import java.util.List;import java.util.Map;import org.dom4j.Document;import org.dom4j.DocumentException;import org.dom4j.DocumentHelper;import org.dom4j.Element;import org.dom4j.Node;/* * 作者:王樹偉 * 功能:通用的xml文檔簡析 * 描述:根據(jù)傳進(jìn)來的參數(shù),返回封裝好的map * 時間:2010-11-22 * */public class TestgetMap SuppressWarnings(unchecked)public Map getTestMapByXml(Document document1,String ywtablename,String fwtablename,Class clazz,Class clazz2) throws DocumentException, InstantiationException, IllegalAccessException, SecurityException, NoSuchMethodException, IllegalArgumentException, InvocationTargetExceptionNode root = document1.selectSingleNode(/TB300103);List item =root.selectNodes(ywtablename);Field f=clazz.getDeclaredFields();List l=new ArrayList();for(int i=0;iitem.size();i+)Object a=clazz.newInstance();Element e = (Element) item.get(i);Iterator ite =e.elementIterator();int j=0;while(ite.hasNext()Element e1 = (Element) ite.next();if(e1.getName().equals(fj.getName()/判斷如果xml中的標(biāo)簽名等于類中的屬性名,找到其set方法/System.out.println(e1.getName()+=+fj.getName();Method m2 = clazz.getDeclaredMethod(set+fj.getName(), String.class);/找到set方法m2.invoke(a, e1.getText(); /執(zhí)行set方法,將值賦予類中j+;l.add(a); Map map=new HashMap(); map.put(ywtablename, l); List fwsx =root.selectNodes(fwtablename);/List item =root.selectNodes(item);Field b=clazz2.getDeclaredFields();List t=new ArrayList();for(int i=0;ifwsx.size();i+)Object bb=clazz2.newInstance();Element e = (Element) fwsx.get(i);Iterator ite =e.elementIterator();int j=0;while(ite.hasNext()Element e1 = (Element) ite.next();if(e1.getName().equals(bj.getName()/判斷相等后,設(shè)置屬性值/System.out.println(e1.getName()+=+fj.getName();Method m2 = clazz2.getDeclaredMethod(set+bj.getName(), String.class);m2.invoke(bb, e1.getText(); j+;t.add(bb); map.put(fwtablename, t);Map mapz=new HashMap();mapz.putAll(map);return mapz;Xmlspy的使用使用xmlspy根據(jù)xsd生成xml文件點(diǎn)即新建: 選擇xml document 確定選擇schema直接瀏覽xsd所在位置最后保存生成的xml文件。使用xsd校驗xml文檔并且返回錯誤的詳細(xì)信息package mon;import java.io.UnsupportedEncodingException;import javax.xml.parsers.ParserConfigurationException;import javax.xml.parsers.SAXParser;import javax.xml.parsers.SAXParserFactory;import org.dom4j.Document;import org.dom4j.io.OutputFormat;import org.dom4j.io.SAXValidator;import org.dom4j.io.XMLWriter;import org.dom4j.util.XMLErrorHandler;import org.xml.sax.SAXException;/* * 作者: 王樹偉 * 功能: * 描述:校驗xml * 時間:2010-10-13 * */public class XsdValidate public static String xsdValidate(Document xmlDocument, String xsdFileName) throws ParserConfigurationException, SAXException, UnsupportedEncodingException /創(chuàng)建默認(rèn)的XML錯誤處理器 XMLErrorHandler er

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論