xml相关技术文档.doc_第1页
xml相关技术文档.doc_第2页
xml相关技术文档.doc_第3页
xml相关技术文档.doc_第4页
xml相关技术文档.doc_第5页
已阅读5页,还剩21页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

Dom4j生成xml/* 建立document对象,一个xml文件可以看成一个文档,所以必须先创建一个文档*/ Document document = DocumentHelper.createDocument(); /* 建立XML 文档的根books,对于一个xml文件有唯一的一个根元素,在dom4j中使用Element表示*/ Element booksElement = document.addElement(books); /* 根元素有了,我们在根元素下面添加一行注释*/ booksElement.addComment(This is dom4j test.); /* 加入第一个book节点,即根元素的第一个子节点或者是子元素.在这里返回添加的子节点的原因是因为子节点还有一个属性需要添加*/ /Element bookElement= booksElement.addElement(book); /* 加入show属性内容,属性使用attribute来表示*/ /bookElement.addAttribute(show, yes); /bookElement.addAttribute(look, www); /* 加入title 节点,为第一个子节点的子节点*/ Element titleElement = booksElement.addElement(title); titleElement.setText(threw); Element textElement = booksElement.addElement(text); textElement.setText(内容是我不知道该咋办阿aaaa!);/*类似的完成后两个节点*/ /* 类似的完成后两个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; /* * 作者:王树伟 * 功能:根据主表生成xml文件 * 描述:dept emp之间的 * 时间:2010-12-8 * */public class CreateXML /* * 通过给定的表名导出所有数据生成xml文件 * param tableName 数据库表名 */ public static void createXml(String tableName,String RECORDSNUM,Integer code) System.out.println(=转换开始=); 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(); / 生成根节点 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(=没有数据=); / 写入文件 这样写可以消除UTF-8乱码情况 OutputFormat opf = OutputFormat.createPrettyPrint(); FileOutputStream fos = new FileOutputStream(src/ + tableName + .xml); XMLWriter xw = new XMLWriter(fos, opf); xw.write(doc); / 关闭文件流 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文档根据java反射解析出来的数据直接封装成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文档简析 * 描述:根据传进来的参数,返回封装好的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中的标签名等于类中的属性名,找到其set方法/System.out.println(e1.getName()+=+fj.getName();Method m2 = clazz.getDeclaredMethod(set+fj.getName(), String.class);/找到set方法m2.invoke(a, e1.getText(); /执行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()/判断相等后,设置属性值/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根据xsd生成xml文件点即新建: 选择xml document 确定选择schema直接浏览xsd所在位置最后保存生成的xml文件。使用xsd校验xml文档并且返回错误的详细信息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 /创建默认的XML错误处理器 XMLErrorHandler er

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论