java 解析xml 并导入数据库(dom4j )

合集下载

java_Dom4j解析XML详解

java_Dom4j解析XML详解

学习:Dom4j1、DOM4J简介DOM4J是 出品的一个开源XML 解析包。

DOM4J应用于Java 平台,采用了Java 集合框架并完全支持DOM,SAX 和JAXP。

DOM4J 使用起来非常简单。

只要你了解基本的XML-DOM 模型,就能使用。

Dom:把整个文档作为一个对象。

DOM4J 最大的特色是使用大量的接口。

它的主要接口都在org.dom4j里面定义:接口之间的继承关系如下:interface ng.Cloneableinterface org.dom4j.Nodeinterface org.dom4j.Attributeinterface org.dom4j.Branchinterface org.dom4j.Documentinterface org.dom4j.Elementinterface org.dom4j.CharacterDatainterface org.dom4j.CDATAinterface mentinterface org.dom4j.Textinterface org.dom4j.DocumentTypeinterface org.dom4j.Entityinterface org.dom4j.ProcessingInstruction2、XML文档操作12.1、读取XML文档:读写XML文档主要依赖于org.dom4j.io包,有DOMReader和SAXReader两种方式。

因为利用了相同的接口,它们的调用方式是一样的。

public static Docum ent load(String filenam e) {Document docum ent =null;try {SAXReader saxReader = new SAXReader();docum ent =saxReader.read(new File(filename)); //读取XML文件,获得docum ent 对象} catch (Exception ex) {ex.printStackTrace();}return docum ent;}或public static Docum ent load(URL url) {Document docum ent =null;try {SAXReader saxReader = new SAXReader();docum ent =saxReader.read(url); //读取XML文件,获得docum ent对象} catch (Exception ex) {ex.printStackTrace();}return docum ent;}//读取指定的xml文件之后返回一个Document对象,这个对象代表了整个XML文档,用于各种Do m运算。

java dom4j 解析

java dom4j 解析

java dom4j 解析DOM4J是一个用于处理XML文档的开源Java库,提供了一种基于树形结构的XML文档处理方式。

通过DOM4J库,我们可以方便地读取、修改和生成XML 文档。

在Java中,使用DOM4J解析XML文档通常需要以下步骤:1. 导入DOM4J库:首先需要将DOM4J库导入到项目中,可以通过Maven或手动下载jar包的方式导入。

2. 创建Document对象:在DOM4J中,XML文档的顶层结构是Document对象,我们需要先创建一个Document对象来表示整个XML文档。

3. 读取XML文档:通过DOM4J提供的SAXReader类,我们可以读取XML 文档并将其解析为Document对象。

可以使用SAXReader的read方法来读取XML 文档。

4. 获取根节点:通过Document对象的getRootElement方法可以获取XML文档的根节点,从而可以通过根节点逐级遍历XML文档的结构。

5. 遍历XML文档:可以通过递归遍历XML文档的节点,获取节点的名称、属性、文本内容等信息。

可以使用Element对象的elements方法获取子节点,使用attributeValue方法获取节点属性的值,使用getText方法获取节点的文本内容。

6. 修改XML文档:通过DOM4J可以方便地修改XML文档的内容,包括添加节点、修改节点属性、修改节点文本内容等操作。

可以使用Element对象的addElement方法添加子节点,setAttributeValue方法修改节点属性的值,setText方法修改节点的文本内容。

7. 生成XML文档:通过DOM4J可以将Document对象生成为XML文档,可以通过OutputFormat类设置XML文档的格式,通过XMLWriter类将Document对象输出为XML文档。

总的来说,使用DOM4J解析XML文档可以方便地读取、修改和生成XML文档,提供了一种便捷的XML文档处理方式。

Java中Dom4j解析XML

Java中Dom4j解析XML

Java中Dom4j解析XML与利⽤DOM、SAX、JAXP机制来解析xml相⽐DOM4J表现更优秀,具有性能优异、功能强⼤和极端易⽤使⽤的特点,只要懂得DOM基本概念,就可以通过dom4j的api⽂档来解析xml.dom4j是⼀套开源的api。

实际项⽬中,往往选择dom4j来作为解析xml的利器。

sax解析:jdom解析:dom解析:1package com.test;23import java.io.File;4import java.util.ArrayList;5import java.util.Iterator;6import java.util.List;78import org.dom4j.Document;9import org.dom4j.Element;10import org.dom4j.io.SAXReader;1112public class Dom4jXML {1314public static void main(String[] args) {15 SAXReader saxReader = new SAXReader();16 File file = new File("e:/People.xml");1718try {19 Document document = saxReader.read(file);20 Element root = document.getRootElement();21 List<People> peoples = new ArrayList<People>();22for (Iterator iterator = root.elementIterator(); iterator.hasNext();) {23 People people = new People();24 Element peopleElement = (Element) iterator.next();25 people.setId(peopleElement.attribute("id").getValue());26for (Iterator childIterator = peopleElement.elementIterator(); childIterator.hasNext();) {27 Element childPeopleElement = (Element) childIterator.next();28if (childPeopleElement.getName().equals("Name")) {29 people.setEnglishName(childPeopleElement.attribute("en").getValue());30 people.setName(childPeopleElement.getText());31 } else if (childPeopleElement.getName().equals("Age")) {32 people.setAge(childPeopleElement.getText());33 }34 }35 peoples.add(people);36 }3738for (People p : peoples) {39 System.out.println(p.getId()+"\t"+p.getName()+"\t"+p.getEnglishName()+"\t"+p.getAge());40 }4142 } catch (Exception e) {43// TODO Auto-generated catch block44 e.printStackTrace();45 }4647 }48 }People对象1package com.test;23public class People {4private String id;5private String name;6private String englishName;7private String age;8public String getId() {9return id;10 }11public void setId(String id) {12this.id = id;13 }14public String getName() {15return name;16 }17public void setName(String name) { = name;19 }20public String getEnglishName() {21return englishName;22 }23public void setEnglishName(String englishName) { 24this.englishName = englishName;25 }26public String getAge() {27return age;28 }29public void setAge(String age) {30this.age = age;31 }3233 }xml:1<?xml version="1.0" encoding="UTF-8"?>2<PeopleList>3<People id="1">4<Name en='zhangsan'>张三</Name>5<Age>20</Age>6</People>7<People id="2">8<Name en='lisi'>李四</Name>9<Age>30</Age>10</People>11</PeopleList>。

dom4j用法

dom4j用法

dom4j用法dom4j是一个开源的JavaXML解析库,用于解析XML文档并提供API来操作XML元素和属性。

它可以轻松地读取、分析和生成XML文件。

dom4j支持使用XPath表达式来访问XML文档中的节点和属性。

XPath是一种用于在XML文档中定位节点的语言。

dom4j还提供了一些高级功能,如XML命名空间的支持和DTD验证。

使用dom4j可以轻松地解析XML文档,例如:```SAXReader reader = new SAXReader();Document document = reader.read(newFile('path/to/xml/file.xml'));Element root = document.getRootElement();List<Element> elements = root.elements();for (Element element : elements) {//访问元素}```在上面的代码中,我们使用SAXReader类读取XML文档,并获取根元素。

然后,我们可以使用getRootElement()方法获取XML文档的根元素,并使用elements()方法获取根元素的所有子元素。

除了解析XML文档外,dom4j还提供了API来创建新的XML文档。

例如:```Document document = DocumentHelper.createDocument();Element root = document.addElement('root');Element child = root.addElement('child');child.addAttribute('attribute', 'value');child.setText('text');```在上面的代码中,我们使用DocumentHelper类创建一个新的XML 文档,并添加根元素和一个子元素。

使用DOM4j解析xml文件

使用DOM4j解析xml文件

Xml文件:<?xml version="1.0" encoding="UTF-8"?><student><!--first xml--><call show="no"><name>studentname</name><English>78</English><Chinese>78</Chinese><Japan>98</Japan></call><call show="no"><name>studentname</name><English>77</English><Chinese>68</Chinese><Japan>88</Japan></call></student>JAVA文件:import java.io.File;import java.io.FileWriter;import java.io.IOException;import java.util.Iterator;import java.util.List;import org.dom4j.Attribute;import org.dom4j.Document;import org.dom4j.DocumentException;import org.dom4j.DocumentHelper;import org.dom4j.Element;import org.dom4j.io.OutputFormat;import org.dom4j.io.SAXReader;import org.dom4j.io.XMLWriter;/***DOM4j对xml文件的操作*操作DOM4j的时候注意要导入3个jar包,否则会报异常*dom4j-1.6.1.jar*jaxen-1.1-beta-6.jar*saxpath.jar**/public class ReaderDom4j {/***创建一个xml文件**/public static void createxml() {//使用 DocumentHelper 类创建一个文档实例。

java解析XML文件

java解析XML文件

java解析XML⽂件Java解析XML⽂件可以使⽤DOM4J这⾥记录⼀下使⽤DOM4J-2.1.1解析XML⽂件的基本⽅法第⼀步,下载所需jar包Jar包下载地址:下载后将jar包导⼊⼯程第⼆步,编写测试⽤XML1<?xml version="1.0" encoding="UTF-8"?>2<commands>3<command condition="text" targetIndex="0" action="input" value="minchen">4</command>5<command condition="button" targetIndex="0" action="click" value="">6</command>7</commands>第三步,解析解析代码如下:1 SAXReader reader = new SAXReader();2 Document document = null;3try {4 document = reader.read(new File("test.xml"));5 } catch (DocumentException e) {6// TODO Auto-generated catch block7 e.printStackTrace();8 }910 Element rootNode = document.getRootElement();1112 Iterator<Element> elementIterator = rootNode.elementIterator();1314while(elementIterator.hasNext()) {15 Element commandElem = elementIterator.next();16 System.out.println(commandElem.attributeValue("condition"));17 System.out.println(commandElem.attributeValue("targetIndex"));18 System.out.println(commandElem.attributeValue("action"));19 System.out.println(commandElem.attributeValue("value"));20 }。

java解析xml并导入数据库(dom4j)

java解析xml并导入数据库(dom4j)

java解析xml并导入数据库(dom4j)java 解析xml 并导入数据库(dom4j ) import java.io.File;import java.sql.Connection;import java.sql.PreparedStatement;import java.sql.ResultSet;import java.util.Iterator;import java.util.List;import org.dom4j.Document;import org.dom4j.Element;import org.dom4j.io.SAXReader;public class TestXMLImport {/*** @param args*/public static void main(String[] args) {String sql = "insert into T_XML(NUMERO, REPOSICION, NOMBRE, TURNOS) values (?, ?, ?, ?)";Connection conn = null;PreparedStatement pstmt = null;try {conn = DbUtil.getConnection();pstmt = conn.prepareStatement(sql);Document doc = new SAXReader().read(newFile("D:/share/JavaProjects/drp/test_xmlImport/xml/test01.X ML "));List itemList = doc.selectNodes("/ACCESOS/item/SOCIO");for (Iterator iter=itemList.iterator(); iter.hasNext();) { Element el = (Element)iter.next();String numero = el.elementText("NUMERO");String reposicion = el.elementText("REPOSICION");String nombre = el.elementText("NOMBRE");List turnosList = el.elements("TURNOS");StringBuffer sbString = new StringBuffer();for (Iterator iter1=turnosList.iterator(); iter1.hasNext();) {Element turnosElt = (Element)iter1.next();String lu = turnosElt.elementText("LU");String ma = turnosElt.elementText("MA");String mi = turnosElt.elementText("MI");String ju = turnosElt.elementText("JU");String vi = turnosElt.elementText("VI");String sa = turnosElt.elementText("SA");String doo = turnosElt.elementText("DO");sbString.append(lu + "," + ma + "," + mi + "," + ju + "," + vi + "," + sa + "," + doo);}pstmt.setString(1, numero);pstmt.setString(2, reposicion);pstmt.setString(3, nombre);pstmt.setString(4, sbString.toString());pstmt.addBatch();}pstmt.executeBatch();System.out.println("将XML导入数据库成功!");} catch (Exception e) {e.printStackTrace();} finally {DbUtil.close(pstmt);DbUtil.close(conn);}}}--------------------------------------------------------------------------------------------------------------------------------- 00045050MOISES MORENOT1T2T3T4T5T6T7。

Java解析XML文件使用Dome4J解析

Java解析XML文件使用Dome4J解析

Java解析XML文件使用Dome4J解析1,必须下载Dome4j包,(自行百度)2,导包3,就可以开始解析了import java.io.FileWriter;import java.io.IOException;import java.util.Iterator;import org.dom4j.Document;import org.dom4j.DocumentException; import org.dom4j.Element;import org.dom4j.io.OutputFormat; import org.dom4j.io.SAXReader; import org.dom4j.io.XMLWriter;public class Dome04 {private Document doc;public void document() {SAXReader saxReader = new SAXReader();try {doc = saxReader.read("NewFile.xml");} catch (DocumentException e) {e.printStackTrace();}}// 读取XML文件public void shouinfo() {Element dome = doc.getRootElement();Iterator<?> it = dome.elementIterator();while (it.hasNext()) {Element a = (Element) it.next();System.out.println(a.attributeValue("name"));Iterator<?> its = a.elementIterator();while (its.hasNext()) {Element b = (Element) its.next();System.out.println(b.attributeValue("name"));}}}// 写入XML文件public void saver(String path) {OutputFormat format = new OutputFormat();format.setEncoding("GBK");try {XMLWriter writer = new XMLWriter(new FileWriter(path), format);writer.write(doc);writer.close();} catch (IOException e) {e.printStackTrace();}}// 增加元素public void add() {// 获得XML节点Element dome = doc.getRootElement();// Brand创建标签Element e1 = dome.addElement("Brand");// 设置标签属性e1.addAttribute("name", "三星");// 创建type标签Element e2 = e1.addElement("type");// 设置标签属性e2.addAttribute("name", "Noad");saver("dome2.xml");}// 添加属性值public void upDelete() {Element dome = doc.getRootElement();int i = 0;Iterator<?> it = dome.elementIterator();while (it.hasNext()) {Element elen = (Element) it.next();++i;elen.addAttribute("ID", i + "");saver("dome2.xml");}}// 删除元素public void delete() {Element dome = doc.getRootElement();Iterator<?> it = dome.elementIterator();while (it.hasNext()) {Element eln = (Element) it.next();if (eln.attributeValue("name").equals("华为")) {eln.getParent().remove(eln);}}saver("dome2.xml");}public static void main(String[] args) { Dome04 dome = new Dome04();dome.document();dome.delete();}}。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

java 解析xml 并导入数据库(dom4j ) import java.io.File;import java.sql.Connection;import java.sql.PreparedStatement;import java.sql.ResultSet;import java.util.Iterator;import java.util.List;import org.dom4j.Document;import org.dom4j.Element;import org.dom4j.io.SAXReader;public class TestXMLImport {/*** @param args*/public static void main(String[] args) {String sql = "insert into T_XML(NUMERO, REPOSICION, NOMBRE, TURNOS) values (?, ?, ?, ?)";Connection conn = null;PreparedStatement pstmt = null;try {conn = DbUtil.getConnection();pstmt = conn.prepareStatement(sql);Document doc = new SAXReader().read(newFile("D:/share/JavaProjects/drp/test_xmlImport/xml/test01.XML "));List itemList = doc.selectNodes("/ACCESOS/item/SOCIO");for (Iterator iter=itemList.iterator(); iter.hasNext();) { Element el = (Element)iter.next();String numero = el.elementText("NUMERO");String reposicion = el.elementText("REPOSICION");String nombre = el.elementText("NOMBRE");List turnosList = el.elements("TURNOS");StringBuffer sbString = new StringBuffer();for (Iterator iter1=turnosList.iterator(); iter1.hasNext();) {Element turnosElt = (Element)iter1.next();String lu = turnosElt.elementText("LU");String ma = turnosElt.elementText("MA");String mi = turnosElt.elementText("MI");String ju = turnosElt.elementText("JU");String vi = turnosElt.elementText("VI");String sa = turnosElt.elementText("SA");String doo = turnosElt.elementText("DO");sbString.append(lu + "," + ma + "," + mi + "," + ju + "," + vi + "," + sa + "," + doo);}pstmt.setString(1, numero);pstmt.setString(2, reposicion);pstmt.setString(3, nombre);pstmt.setString(4, sbString.toString());pstmt.addBatch();}pstmt.executeBatch();System.out.println("将XML导入数据库成功!");} catch (Exception e) {e.printStackTrace();} finally {DbUtil.close(pstmt);DbUtil.close(conn);}}}---------------------------------------------------------------------------------------------------------------------------------<?xml version="1.0" encoding="utf-8"?><ACCESOS><item><SOCIO><NUMERO>00045050</NUMERO><REPOSICION>0</REPOSICION><NOMBRE>MOISES MORENO</NOMBRE><TURNOS><LU>T1</LU><MA>T2</MA><MI>T3</MI><JU>T4</JU><VI>T5</VI><SA>T6</SA><DO>T7</DO></TURNOS></SOCIO></item><item><SOCIO><NUMERO>00045051</NUMERO><REPOSICION>0</REPOSICION><NOMBRE>RUTH PENA</NOMBRE><TURNOS><LU>S1</LU><MA>S2</MA><MI>S3</MI><JU>S4</JU><VI>S5 </VI><SA>S6</SA><DO>S7</DO></TURNOS></SOCIO></item></ACCESOS>1、package myxml;import javax.xml.parsers.*;import org.w3c.dom.*;import org.apache.crimson.tree.*;import org.xml.sax.SAXException;import java.io.*;public class DomParserDemo{private Document doc;public DomParserDemo() throws Exception{DocumentBuilderFactory factory=DocumentBuilderFactory.newInstance();DocumentBuilder builder=factory.newDocumentBuilder();String source= "e:/jhb1117/classes/xmldoc/candidate.xml ";doc=builder.parse(source);}public void showDocument() {//get all <person>NodeList personList=doc.getElementsByTagName(XMLTagDir.NODE_PERS ON); // "PERSON " 也可,本文中为数据词典for(int i=0;i <personList.getLength();i++) //节点从0开始{Element person=(Element)personList.item(i);System.out.print(XMLTagDir.NODE_NAME+ ": ");System.out.println(getNodeValue(person,XMLTagDir.NODE_NAME));System.out.print(XMLTagDir.NODE_ADDRESS+ ": ");System.out.println(getNodeValue(person,XMLTagDir.NODE_ADDRESS));System.out.print(XMLTagDir.NODE_TEL+ ": ");System.out.println(getNodeValue(person,XMLTagDir.NODE_TEL));System.out.print(XMLTagDir.NODE_FAX+ ": ");System.out.println(getNodeValue(person,XMLTagDir.NODE_FAX));System.out.print(XMLTagDir.NODE_EMAIL+ ": ");System.out.println(getNodeValue(person,XMLTagDir.NODE_EMAIL));System.out.println();}}public String getNodeValue(Element person,String nodeName){ NodeList nameList=person.getElementsByTagName(nodeName);Element name=(Element)nameList.item(0);Text text=(Text)name.getFirstChild();String value=text.getNodeValue();return value;}public void saveDocument(String path) throws IOException{FileWriter fw=new FileWriter(path);XmlDocument xmldoc=(XmlDocument)doc;xmldoc.write(fw);fw.close();}public static void main(String args[]){try{DomParserDemo doc=new DomParserDemo();doc.showDocument();// String path= "e:/houjie/JavaAdvance/dist/xmldoc/parseOut.xml ";String path= "e:/jhb1117/classes/xmldoc/jhbparseOut.xml ";doc.saveDocument(path);System.out.print( "file saved ");}catch(Exception e){e.printStackTrace();}}}2、package myxml;import javax.xml.parsers.*;import org.w3c.dom.*;import org.apache.crimson.tree.*;import java.io.*;/*** <p> Title: </p>* <p> Description: </p>* <p> Copyright: Copyright (c) 2002 </p>* <p> Company: </p>* @author xxy* @version 1.0*/public class DomCreateDemo {private Document doc;public DomCreateDemo() throws Exception{DocumentBuilderFactory factory=DocumentBuilderFactory.newInstance();DocumentBuilder builder=factory.newDocumentBuilder();doc=builder.newDocument();}public void createDocument(){if(doc==null) return;Element peopleElement=doc.createElement(XMLTagDir.NODE_PEOPLE);for(int i=1;i <=3;i++){Element personElement=doc.createElement(XMLTagDir.NODE_PERSO N);personElement.setAttribute( "PERSONID ", "E "+i);//one person include several tagsText text=null;Element nameElement=doc.createElement(XMLTagDir.NODE_NAME);text=doc.createTextNode( "myName "+i);nameElement.appendChild(text);personElement.appendChild(nameElement);Element addressElement=doc.createElement(XMLTagDir.NODE_ADDR ESS);text=doc.createTextNode( "myAddress "+i);addressElement.appendChild(text);personElement.appendChild(addressElement);Element telElement=doc.createElement(XMLTagDir.NODE_TEL);text=doc.createTextNode( "myTel "+i);telElement.appendChild(text);personElement.appendChild(telElement);Element faxElement=doc.createElement(XMLTagDir.NODE_FAX);text=doc.createTextNode( "myFax "+i);faxElement.appendChild(text);personElement.appendChild(faxElement);Element emailElement=doc.createElement(XMLTagDir.NODE_EMAIL);text=doc.createTextNode( "myEmail "+i);emailElement.appendChild(text);personElement.appendChild(emailElement);peopleElement.appendChild(personElement);}doc.appendChild(peopleElement);}public void saveDocument(String path) throws IOException {FileWriter fout=new FileWriter(path);XmlDocument xmldoc=(XmlDocument)doc;xmldoc.write(fout);fout.close();}public static void main(String[] args) {try{DomCreateDemo doc = new DomCreateDemo();doc.createDocument();System.out.print( "doc created ");String path= "e:/jhb1117/classes/xmldoc/jhbcreateOut.xml ";// String path= "e:/houjie/JavaAdvance/dist/xmldoc/createOut.xml ";doc.saveDocument(path);System.out.print( "file saved ");}catch(Exception e){e.printStackTrace();}}}3、package myxml;import javax.xml.parsers.*;import org.w3c.dom.*;import org.apache.crimson.tree.*;import java.io.*;/*** <p> Title: </p>* <p> Description: </p>* <p> Copyright: Copyright (c) 2002 </p>* <p> Company: </p>* @author xxy* @version 1.0*/public class DomCreateDemo {private Document doc;public DomCreateDemo() throws Exception{DocumentBuilderFactory factory=DocumentBuilderFactory.newInstance();DocumentBuilder builder=factory.newDocumentBuilder();doc=builder.newDocument();}public void createDocument(){if(doc==null) return;Element peopleElement=doc.createElement(XMLTagDir.NODE_PEOPLE);for(int i=1;i <=3;i++){Element personElement=doc.createElement(XMLTagDir.NODE_PERSO N);personElement.setAttribute( "PERSONID ", "E "+i);peopleElement.appendChild(personElement);}doc.appendChild(peopleElement);}public void saveDocument(String path) throws IOException {FileWriter fout=new FileWriter(path);XmlDocument xmldoc=(XmlDocument)doc;xmldoc.write(fout);fout.close();}public static void main(String[] args) {try{DomCreateDemo doc = new DomCreateDemo();doc.createDocument();System.out.print( "doc created ");// String path= "e:/houjie/JavaAdvance/dist/xmldoc/createOut.xml ";String path= "e:/jhb1117/classes/xmldoc/jhbcreateOut.xml ";doc.saveDocument(path);System.out.print( "file saved ");}catch(Exception e){e.printStackTrace();}}}4、package myxml;import javax.xml.parsers.*;import org.w3c.dom.*;import org.apache.crimson.tree.*;import org.xml.sax.SAXException;import java.io.*;public class DomParserDemo{private Document doc;public DomParserDemo() throwsIOException,ParserConfigurationException,SAXException{DocumentBuilderFactory factory=DocumentBuilderFactory.newInstance();DocumentBuilder builder=factory.newDocumentBuilder();// Document doc=builder.parse( "resources/xmldoc/candidate.xml ");// String source= "f:/houjie/JavaAdvance/dist/xmldoc/candidate.xml ";String source= "e:/jhb1117/classes/xmldoc/candidate.xml ";doc=builder.parse(source);}public void showDocument() {//get all <person>NodeList personList=doc.getElementsByTagName(XMLTagDir.NODE_PERS ON);for(int i=0;i <personList.getLength();i++){Element person=(Element)personList.item(i);System.out.print(XMLTagDir.NODE_NAME);System.out.println(getNodeValue(person,XMLTagDir.NODE_NAME));System.out.print(XMLTagDir.NODE_ADDRESS);System.out.println(getNodeValue(person,XMLTagDir.NODE_ADDRESS));System.out.print(XMLTagDir.NODE_TEL);System.out.println(getNodeValue(person,XMLTagDir.NODE_TEL));System.out.print(XMLTagDir.NODE_FAX);System.out.println(getNodeValue(person,XMLTagDir.NODE_FAX));System.out.print(XMLTagDir.NODE_EMAIL);System.out.println(getNodeValue(person,XMLTagDir.NODE_EMAIL));System.out.println();}}public void showAndSavePeopleDocument(Document doc,String path) { //get all <person>NodeList personList=doc.getElementsByTagName(XMLTagDir.NODE_PERS ON);for(int i=0;i <personList.getLength();i++){Element person=(Element)personList.item(i);System.out.print(XMLTagDir.NODE_NAME);System.out.println(getNodeValue(person,XMLTagDir.NODE_NAME));System.out.print(XMLTagDir.NODE_ADDRESS);System.out.println(getNodeValue(person,XMLTagDir.NODE_ADDRESS));System.out.print(XMLTagDir.NODE_TEL);System.out.println(getNodeValue(person,XMLTagDir.NODE_TEL));System.out.print(XMLTagDir.NODE_FAX);System.out.println(getNodeValue(person,XMLTagDir.NODE_FAX));System.out.print(XMLTagDir.NODE_EMAIL);System.out.println(getNodeValue(person,XMLTagDir.NODE_EMAIL));System.out.println();}try{saveDocument(doc,path);}catch(Exception e){e.printStackTrace();}}public String getNodeValue(Element person,String nodeName){NodeList nameList=person.getElementsByTagName(nodeName);Element name=(Element)nameList.item(0);Text text=(Text)name.getFirstChild();String value=text.getNodeValue();return value;}public void saveDocument(String path) throws IOException {FileWriter fout=new FileWriter(path);XmlDocument xmldoc=(XmlDocument)doc;xmldoc.write(fout);fout.close();}public void saveDocument(Document doc,String path) throws IOException {FileWriter fout=new FileWriter(path);XmlDocument xmldoc=(XmlDocument)doc;xmldoc.write(fout);fout.close();}public static void main(String args[]){try{DomParserDemo doc=new DomParserDemo();doc.showDocument();// String path= "e:/houjie/JavaAdvance/dist/xmldoc/parseOut.xml ";String path= "e:/jhb1117/classes/xmldoc/jhbparseOut.xml ";doc.saveDocument(path);System.out.print( "file saved ");}catch(Exception e){e.printStackTrace();}}}5、package myxml;/*** <p> Title: </p>* <p> Description: </p>* <p> Copyright: Copyright (c) 2002 </p> * <p> Company: </p>* @author xxy* @version 1.0*//*NAMEADDRESSTELFAXEMAIL*/public class DBPeople {public DBPeople() {}public static final int NAME=1;public static final int ADDRESS=2;public static final int TEL=3;public static final int FAX=4;public static final int EMAIL=5;private String name;private String address;private String tel;private String fax;private String email;public String getName() {return name;}public void setName(String name) { = name;}public void setAddress(String address) { this.address = address;}public String getAddress() {return address;}public void setTel(String tel) {this.tel = tel;}public String getTel() {return tel;}public void setFax(String fax) {this.fax = fax;}public String getFax() {return fax;}public void setEmail(String email) { this.email = email;}public String getEmail() {return email;}}6、package myxml;import javax.xml.parsers.*;import org.w3c.dom.*;import org.apache.crimson.tree.*;import javax.xml.transform.*;import javax.xml.transform.dom.DOMSource; import javax.xml.transform.stream.StreamResult; import java.io.*;/*** <p> Title: </p>* <p> Description: </p>* <p> Copyright: Copyright (c) 2002 </p> * <p> Company: </p>* @author xxy* @version 1.0*/public class DomTransform {private Document doc;private Transformer transformer;public DomTransform() throws Exception{DocumentBuilderFactory factory=DocumentBuilderFactory.newInstance();DocumentBuilder builder=factory.newDocumentBuilder();// String source= "e:/houjie/JavaAdvance/dist/xmldoc/candidate.xml ";String source= "e:/jhb1117/classes/xmldoc/candidate.xml ";doc=builder.parse(source);TransformerFactory tf=TransformerFactory.newInstance();transformer=tf.newTransformer();}public void changeDocument(){//get all <person>NodeList personList=doc.getElementsByTagName(XMLTagDir.NODE_PERSON);for(int i=0;i <personList.getLength();i++){Element person=(Element)personList.item(i);setNodeValue(person,XMLTagDir.NODE_ADDRESS, "newAddress "+i); //改变address值System.out.print(XMLTagDir.NODE_ADDRESS);System.out.println(getNodeValue(person,XMLTagDir.NODE_ADDRESS));}}public void setNodeValue(Element person,String nodeName,String newValue){ NodeList nameList=person.getElementsByTagName(nodeName);Element name=(Element)nameList.item(0);Text text=(Text)name.getFirstChild();text.setNodeValue(newValue);}public String getNodeValue(Element person,String nodeName){NodeList nameList=person.getElementsByTagName(nodeName);Element name=(Element)nameList.item(0);Text text=(Text)name.getFirstChild();String value=text.getNodeValue();return value;}public void saveDocument(String path) throws IOException,TransformerExcept ion {FileWriter fout=new FileWriter(path);DOMSource source=new DOMSource(doc);StreamResult result=new StreamResult(fout);transformer.transform(source,result);/* XmlDocument xmldoc=(XmlDocument)doc;xmldoc.write(fout);*/ fout.close();}public static void main(String[] args) {try{DomTransform doc = new DomTransform();doc.changeDocument();System.out.println( "doc changed ");// String path= "e:/houjie/JavaAdvance/dist/xmldoc/transformOut.xml ";String path= "e:/jhb1117/classes/xmldoc/transformOut.xml ";doc.saveDocument(path);System.out.print( "file saved ");}catch(Exception e){e.printStackTrace();}7、package myxml;import java.io.Serializable;import java.sql.*;import oracle.jdbc.driver.OracleDriver;import java.util.*;public class PeopleProcessor implements Serializable{private Connection conn;private Statement stmt;private String url= "jdbc:oracle:oci8:@orcl817 ";private String user= "scott ";private String pwd= "tiger ";public PeopleProcessor() throws SQLException{initdb();System.out.println( "connected ");}private void initdb()throws SQLException{DriverManager.setLoginTimeout(10);try{// Driver driver=new oracle.jdbc.driver.OracleDriver();// DriverManager.registerDriver(driver);Class.forName( "oracle.jdbc.driver.OracleDriver ");conn=DriverManager.getConnection(url,user,pwd);conn.setAutoCommit(false);stmt=conn.createStatement();}catch(ClassNotFoundException e){e.printStackTrace();throw new SQLException( "driver class not found ");}catch(SQLException e){e.printStackTrace();throw new SQLException( "db connection failed ");}}public ResultSet doQuery(String sql)throws SQLException{ ResultSet rs=null;rs=stmt.executeQuery(sql);return rs;}public int doUpdate(String sql)throws SQLException{int n;n=stmt.executeUpdate(sql);mit();System.out.println(n+ " records updated\n ");return n;}public int insertPeople(DBPeople people)throws SQLException{String sql= "insert into people values(?,?,?,?,?) ";PreparedStatement ps=conn.prepareStatement(sql);ps.setString(,people.getName());ps.setString(DBPeople.ADDRESS,people.getAddress());ps.setString(DBPeople.TEL,people.getTel());ps.setString(DBPeople.FAX,people.getFax());ps.setString(DBPeople.EMAIL,people.getEmail());int n=ps.executeUpdate();ps.close();return n;}public void close() throws SQLException{if(conn!=null) conn.close();if(stmt!=null) stmt.close();}public void commit()throws SQLException{if(conn!=null)mit();}public static String toChinese(String strValue){try{if(strValue==null){return null;}else{byte[] bytes=strValue.getBytes( "ISO8859 ");return new String(bytes, "GKB ");}}catch(Exception e){return null;}}public List retrievePeople()throws SQLException{ List peopleList=new LinkedList();String sql= "select * from people ";ResultSet rs=stmt.executeQuery(sql);ResultSetMetaData meta=rs.getMetaData();int columns=meta.getColumnCount();int n=0;while(rs.next()){DBPeople people=new DBPeople();people.setName(rs.getString());people.setAddress(rs.getString(DBPeople.ADDRESS));people.setTel(rs.getString(DBPeople.TEL));people.setFax(rs.getString(DBPeople.FAX));people.setEmail(rs.getString(DBPeople.EMAIL));peopleList.add(people);}return peopleList;}public static void main(String args[]){try{PeopleProcessor jp=new PeopleProcessor();// ResultSet rs=jp.doQuery( "select * from emp where empno= '0001 ' ");ResultSet rs=jp.doQuery( "select * from people ");ResultSetMetaData meta=rs.getMetaData();int columns=meta.getColumnCount();int n=0;while(rs.next()){for(int i=1;i <=columns;i++){System.out.print(rs.getString(i)+ "\t ");}n++;System.out.println();}System.out.println(n+ " rows selcted ");List peopleList=jp.retrievePeople();System.out.println( "there are " +peopleList.size()+ " records in people ");jp.close();}catch(SQLException e){}}}8、package myxml;import javax.xml.parsers.*;import org.w3c.dom.*;import org.apache.crimson.tree.*;import java.io.*;import java.util.*;/*** <p> Title: </p>* <p> Description: </p>* <p> Copyright: Copyright (c) 2002 </p>* <p> Company: </p>* @author xxy* @version 1.0*/public class XMLFromJdbc implements Serializable{private PeopleProcessor dbProcessor;private Document doc;private List peopleList;private boolean isDocCreated=false;public XMLFromJdbc() throws Exception{dbProcessor=new PeopleProcessor();peopleList=dbProcessor.retrievePeople(); //执行select * from peopledbProcessor.close();DocumentBuilderFactory factory=DocumentBuilderFactory.newInstance();DocumentBuilder builder=factory.newDocumentBuilder();doc=builder.newDocument();}public void createDocument(){if(doc==null) return;if(isDocCreated) return;Element peopleElement=doc.createElement(XMLTagDir.NODE_PEOPLE);if(peopleList==null) return;Iterator iter=peopleList.iterator(); //游标Iteratorint no=1;while(iter.hasNext()){ //Tierator的方法hasNext()DBPeople people=(DBPeople)iter.next(); //Tierator的方法Next()Element personElement=doc.createElement(XMLTagDir.NODE_PERSON);personElement.setAttribute( "PERSONID ", "E "+no);//one person include several tagsText text=null;Element name=doc.createElement(XMLTagDir.NODE_NAME);text=doc.createTextNode(people.getName());name.appendChild(text);personElement.appendChild(name);Element address=doc.createElement(XMLTagDir.NODE_ADDRESS);text=doc.createTextNode(people.getAddress());address.appendChild(text);personElement.appendChild(address);Element tel=doc.createElement(XMLTagDir.NODE_TEL);text=doc.createTextNode(people.getTel());tel.appendChild(text);personElement.appendChild(tel);Element fax=doc.createElement(XMLTagDir.NODE_FAX);text=doc.createTextNode(people.getFax());fax.appendChild(text);personElement.appendChild(fax);Element email=doc.createElement(XMLTagDir.NODE_EMAIL);text=doc.createTextNode(people.getEmail());email.appendChild(text);personElement.appendChild(email);peopleElement.appendChild(personElement);no++;}doc.appendChild(peopleElement);isDocCreated=true;}public void saveDocument(String path) throws IOException { FileWriter fout=new FileWriter(path);XmlDocument xmldoc=(XmlDocument)doc;xmldoc.write(fout);fout.close();}public Document getDocument(){if(!isDocCreated)this.createDocument();return this.doc;}public static void main(String[] args) {try{XMLFromJdbc doc = new XMLFromJdbc();doc.createDocument();System.out.println( "doc created ");// String path= "e:/houjie/JavaAdvance/dist/xmldoc/XMLFromJdbc.xml ";String path= "e:/jhb1117/classes/xmldoc/XMLFromJdbc.xml ";doc.saveDocument(path);System.out.println( "file saved ");System.out.println(doc.peopleList.size()); //}catch(Exception e){e.printStackTrace();}}}9、package myxml;import javax.xml.parsers.*;import org.w3c.dom.*;import java.io.*;import java.util.*;import myxml.*;/*** <p> Title: </p>* <p> Description: </p>* <p> Copyright: Copyright (c) 2002 </p>* <p> Company: </p>* @author xxy* @version 1.0*/public class XMLFromJdbc2 implements Serializable{private List peopleList;public XMLFromJdbc2() throws Exception{}public Document getDocument(){Document doc;try{DocumentBuilderFactory factory=DocumentBuilderFactory.newInstance();DocumentBuilder builder=factory.newDocumentBuilder();doc=builder.newDocument();PeopleProcessor dbProcessor =new PeopleProcessor();peopleList=dbProcessor.retrievePeople();dbProcessor.close();}catch(Exception e){e.printStackTrace();return null;}Element peopleElement=doc.createElement(XMLTagDir.NODE_PEOPLE);if(peopleList==null) return null;Iterator iter=peopleList.iterator();int no=1;while(iter.hasNext()){DBPeople people=(DBPeople)iter.next();Element personElement=doc.createElement(XMLTagDir.NODE_PERSON);personElement.setAttribute( "PERSONID ", "E "+no);//one person include several tagsText text=null;Element name=doc.createElement(XMLTagDir.NODE_NAME);text=doc.createTextNode(people.getName());name.appendChild(text);personElement.appendChild(name);Element address=doc.createElement(XMLTagDir.NODE_ADDRESS);text=doc.createTextNode(people.getAddress());address.appendChild(text);personElement.appendChild(address);Element tel=doc.createElement(XMLTagDir.NODE_TEL);text=doc.createTextNode(people.getTel());tel.appendChild(text);personElement.appendChild(tel);Element fax=doc.createElement(XMLTagDir.NODE_FAX);text=doc.createTextNode(people.getFax());fax.appendChild(text);personElement.appendChild(fax);Element email=doc.createElement(XMLTagDir.NODE_EMAIL);text=doc.createTextNode(people.getEmail());email.appendChild(text);personElement.appendChild(email);peopleElement.appendChild(personElement);no++;}doc.appendChild(peopleElement);return doc;}}10、package myxml;/*** <p> Title: </p>* <p> Description: </p>* <p> Copyright: Copyright (c) 2002 </p>* <p> Company: </p>* @author xxy* @version 1.0*/public class XMLTagDir {public final static String NODE_PEOPLE= "PEOPLE ";public final static String NODE_PERSON= "PERSON ";public final static String NODE_NAME= "NAME ";public final static String NODE_ADDRESS= "ADDRESS ";public final static String NODE_TEL= "TEL ";public final static String NODE_FAX= "FAX ";public final static String NODE_EMAIL= "EMAIL ";private XMLTagDir() {}}11、package myxml;import javax.xml.parsers.*;import org.w3c.dom.*;import org.apache.crimson.tree.*;import java.io.*;/*** <p> Title: </p>* <p> Description: </p>* <p> Copyright: Copyright (c) 2002 </p>* <p> Company: </p>* @author xxy* @version 1.0*/public class XMLToJdbc {private PeopleProcessor dbProcessor;private Document doc;public XMLToJdbc() throws Exception{DocumentBuilderFactory factory=DocumentBuilderFactory.newInstance();DocumentBuilder builder=factory.newDocumentBuilder();// String source= "e:/houjie/JavaAdvance/dist/xmldoc/candidate.xml ";String source= "e:/jhb1117/classes/xmldoc/candidate.xml ";doc=builder.parse(source);dbProcessor=new PeopleProcessor();}public void createRecords() throws Exception{NodeList personList=doc.getElementsByTagName( "XMLTagDir.NODE_PER SON ");DBPeople[] people=new DBPeople[personList.getLength()];for(int i=0;i <personList.getLength();i++){people[i]=new DBPeople();Element person=(Element)personList.item(i);。

相关文档
最新文档