DOM4J学习
2007-01-08 12:21
375 查看
要用SOA必须熟悉XML、SOAP等等。XML解析中DOM4J用得比较广泛,而且性能也很好,由于现在没有要跨语言的需求,所以就学DOM4J吧。
在这里先简单得学习一下在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();
}
}
你可以在类文件夹下得到两个文件: 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>
把这个文件命名为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)
+ " 毫秒");
}
}
简单万岁!
在这里先简单得学习一下在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();
}
}
你可以在类文件夹下得到两个文件: 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>
把这个文件命名为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)
+ " 毫秒");
}
}
简单万岁!
相关文章推荐
- xml&dom_sax_dom4j学习笔记(一)SAX解析XML文件
- dom4j学习总结(一)[转]
- 学习:Dom4j和Xpath
- Java之DOM4J方式生成XML文件(学习笔记)
- DOM4j 学习笔记
- dom4j(XML解析)私人学习笔记
- dom4j的学习
- JAXP,sax与dom4j解析xml文档及XPath在文档内容定位中的应用(持续更新,初学者的野路子、参考和想当然,不断学习和专业化)
- 模拟Spring创建Bean和dom4j读取xml文件(视频学习-传智播客Spring2.5-03)
- XML学习之dom4j
- Dom4j 学习笔记
- DOM4J学习笔记 --- Java简单解析XML数据
- dom4j简单学习
- dom4j学习笔记[2]---获取XML文件
- dom4j学习笔记[3]---获取、修改XML元素
- Dom4j学习笔记--第一篇
- Dom4j学习笔记--第二篇
- Dom4j 学习资料
- javaweb学习第七天:使用dom4j解析xml
- xml(Dom4J)解析原理及代码--Dom4J学习小计