要用SOA必须熟悉XML、SOAP等等。XML解析中DOM4J用得比较广泛,而且性能也很好,由于现在没有要跨语言的需求,所以就学DOM4J吧。
在这里先简单得学习一下在JAVA中怎么创建和读取XML文件。
首先是下 dom4j,需要dom4j-x.x.x.jar,目前最高版本是dom4j-1.6.1.jar。
先来用java创建XML:
你可以在类文件夹下得到两个文件: Dom2jSample.xml, Dom2jSampleStr.xml
很简单吧,再学怎么读取。
首先创建一个XML文件
把这个文件命名为data_10k.xml放在刚才那两个XML文件生成的同一个目录下。
读取的源代码如下:
简单万岁!
在这里先简单得学习一下在JAVA中怎么创建和读取XML文件。
首先是下 dom4j,需要dom4j-x.x.x.jar,目前最高版本是dom4j-1.6.1.jar。
先来用java创建XML:
package
kompakar.tutorial.soap.xml;
import java.io.FileWriter;
import java.io.IOException;
import java.util.Iterator;
import org.dom4j.Document;
import org.dom4j.DocumentException;
import org.dom4j.DocumentHelper;
import org.dom4j.Element;
import org.dom4j.io.XMLWriter;
public class DOM4JWriter {
/**
* @param args
*/
public static void main(String[] args) {
DOM4JWriter dom4jWriter = new DOM4JWriter();
//create Document
Document document = dom4jWriter.createDocument();
try {
dom4jWriter.writeDocument2File(document);
Document documentStr = dom4jWriter
.StringToXML("<China>I Love!</China>");
dom4jWriter.writeDocument2XML(documentStr);
} catch (IOException e) {
e.printStackTrace();
} catch (DocumentException e) {
e.printStackTrace();
}
//find element
Element element = dom4jWriter.findElement(document);
System.out.println(element.getText());
}
/*
* Create a XML Document
*/
public Document createDocument() {
Document document = DocumentHelper.createDocument();
//root element
Element root = document.addElement("persons");
Element author1 = root.addElement("person");
author1.addAttribute("Name", "康博嘉");
author1.addAttribute("Age", "25");
author1.addAttribute("Country", "China");
author1.addText("I am great!");
Element author2 = root.addElement("person");
author2.addAttribute("Name", "GIGI");
author2.addAttribute("Age", "25");
author2.addAttribute("Country", "China");
author2.addText("I am great!too!");
document.setXMLEncoding("gb2312");
return document;
}
/*
* Create a XML document through String
*/
public Document StringToXML(String str) throws DocumentException {
Document document = DocumentHelper.parseText(str);
return document;
}
public Element findElement(Document document) {
Element root = document.getRootElement();
Element legend = null;
for (Iterator i = root.elementIterator("person"); i.hasNext();) {
legend = (Element) i.next();
}
return legend;
}
/*
* Write a XML file
*/
public void writeDocument2File(Document document) throws IOException {
FileWriter out = new FileWriter("./Dom2jSample.xml");
document.write(out);
out.close();
}
/*
* Write a XML format file
*/
public void writeDocument2XML(Document document) throws IOException {
XMLWriter writer = new XMLWriter(new FileWriter("./Dom2jSampleStr.xml"));
writer.write(document);
writer.close();
}
}
import java.io.FileWriter;
import java.io.IOException;
import java.util.Iterator;
import org.dom4j.Document;
import org.dom4j.DocumentException;
import org.dom4j.DocumentHelper;
import org.dom4j.Element;
import org.dom4j.io.XMLWriter;
public class DOM4JWriter {
/**
* @param args
*/
public static void main(String[] args) {
DOM4JWriter dom4jWriter = new DOM4JWriter();
//create Document
Document document = dom4jWriter.createDocument();
try {
dom4jWriter.writeDocument2File(document);
Document documentStr = dom4jWriter
.StringToXML("<China>I Love!</China>");
dom4jWriter.writeDocument2XML(documentStr);
} catch (IOException e) {
e.printStackTrace();
} catch (DocumentException e) {
e.printStackTrace();
}
//find element
Element element = dom4jWriter.findElement(document);
System.out.println(element.getText());
}
/*
* Create a XML Document
*/
public Document createDocument() {
Document document = DocumentHelper.createDocument();
//root element
Element root = document.addElement("persons");
Element author1 = root.addElement("person");
author1.addAttribute("Name", "康博嘉");
author1.addAttribute("Age", "25");
author1.addAttribute("Country", "China");
author1.addText("I am great!");
Element author2 = root.addElement("person");
author2.addAttribute("Name", "GIGI");
author2.addAttribute("Age", "25");
author2.addAttribute("Country", "China");
author2.addText("I am great!too!");
document.setXMLEncoding("gb2312");
return document;
}
/*
* Create a XML document through String
*/
public Document StringToXML(String str) throws DocumentException {
Document document = DocumentHelper.parseText(str);
return document;
}
public Element findElement(Document document) {
Element root = document.getRootElement();
Element legend = null;
for (Iterator i = root.elementIterator("person"); i.hasNext();) {
legend = (Element) i.next();
}
return legend;
}
/*
* Write a XML file
*/
public void writeDocument2File(Document document) throws IOException {
FileWriter out = new FileWriter("./Dom2jSample.xml");
document.write(out);
out.close();
}
/*
* Write a XML format file
*/
public void writeDocument2XML(Document document) throws IOException {
XMLWriter writer = new XMLWriter(new FileWriter("./Dom2jSampleStr.xml"));
writer.write(document);
writer.close();
}
}
你可以在类文件夹下得到两个文件: Dom2jSample.xml, Dom2jSampleStr.xml
很简单吧,再学怎么读取。
首先创建一个XML文件
<?
xml version="1.0" encoding="gb2312"
?>
< books >
< book email = "benewu@gmail.com" >
< name > 世界是平的 </ name >
< price > 88.20 </ price >
</ book >
<book email = "benewu@gmail.com">
<name>天龙八部</name>
<price>45.90</price>
</book>
</books>
< books >
< book email = "benewu@gmail.com" >
< name > 世界是平的 </ name >
< price > 88.20 </ price >
</ book >
<book email = "benewu@gmail.com">
<name>天龙八部</name>
<price>45.90</price>
</book>
</books>
把这个文件命名为data_10k.xml放在刚才那两个XML文件生成的同一个目录下。
读取的源代码如下:
package
kompakar.tutorial.soap.xml;
import java.io.File;
import java.util.Iterator;
import org.dom4j.Document;
import org.dom4j.Element;
import org.dom4j.io.SAXReader;
public class DOM4JReader {
public static void main(String arge[]) {
long lasting = System.currentTimeMillis();
try {
File f = new File("./data_10k.xml");
SAXReader reader = new SAXReader();
Document doc = reader.read(f);
// 取根节点
Element root = doc.getRootElement();
Element foo;
// 遍历节点
for (Iterator i = root.elementIterator("book"); i.hasNext();) {
foo = (Element) i.next();
System.out.println("书名 : " + foo.elementText("name"));
System.out.println("价格 : " + foo.elementText("price"));
}
} catch (Exception e) {
e.printStackTrace();
}
System.out.println("运行时间:" + (System.currentTimeMillis() - lasting)
+ " 毫秒");
}
}
import java.io.File;
import java.util.Iterator;
import org.dom4j.Document;
import org.dom4j.Element;
import org.dom4j.io.SAXReader;
public class DOM4JReader {
public static void main(String arge[]) {
long lasting = System.currentTimeMillis();
try {
File f = new File("./data_10k.xml");
SAXReader reader = new SAXReader();
Document doc = reader.read(f);
// 取根节点
Element root = doc.getRootElement();
Element foo;
// 遍历节点
for (Iterator i = root.elementIterator("book"); i.hasNext();) {
foo = (Element) i.next();
System.out.println("书名 : " + foo.elementText("name"));
System.out.println("价格 : " + foo.elementText("price"));
}
} catch (Exception e) {
e.printStackTrace();
}
System.out.println("运行时间:" + (System.currentTimeMillis() - lasting)
+ " 毫秒");
}
}
简单万岁!