Elemente=(Element)list.get(i);
System.out.println(e.getChild("name").getText());
System.out.println(e.getChild("sex").getText());
}
}catch(Exceptione){
e.printStackTrace();
}
}
publicstaticvoidmain(String[]args){
JdomParseXmlDemojpxd=newJdomParseXmlDemo();
jpxd.showMessage();
}
}
10.dom4j解析:
相对来说,dom4j的效率最高。
如今越来越多的项目开始使用dom4j进行xml解析,包括Hibernate。
需要额外jar包
publicclassDom4jParseXmlDemo{
publicvoidshowMessage(){
try{
Filef=newFile("xml/person.xml");
SAXReaderreader=newSAXReader();
Documentdoc=reader.read(f);
Elementroot=doc.getRootElement();
Iteratorit=root.elementIterator();
while(it.hasNext()){
Elementfoo=it.next();
System.out.println(foo.elementText("name"));
System.out.println(foo.elementText("sex"));
}
}catch(DocumentExceptione){
e.printStackTrace();
}
}
publicstaticvoidmain(String[]args){
Dom4jParseXmlDemodom4j=newDom4jParseXmlDemo();
dom4j.showMessage();
}
}
11.xml与数据库交互(从数据库读数据生成xml,从xml读数据插入数据库)
Jdom实现
importjava.io.File;
importjava.io.FileNotFoundException;
importjava.io.FileOutputStream;
importjava.io.IOException;
importjava.sql.Connection;
importjava.sql.DriverManager;
importjava.sql.PreparedStatement;
importjava.sql.ResultSet;
importjava.sql.SQLException;
importjava.sql.Statement;
importjava.util.ArrayList;
importjava.util.List;
importorg.jdom.Document;
importorg.jdom.Element;
importorg.jdom.JDOMException;
importorg.jdom.input.SAXBuilder;
importorg.jdom.output.Format;
importorg.jdom.output.XMLOutputter;
publicclassXmlAndDBConvertForJdom{
/**
*根据用户列表创建xml文件
*@paramfilepath文件路径
*/
publicvoidmakeXML(Stringfilepath){
Listlist=this.getUserinfoListFromDB();
Elementroot=newElement("users");
for(Useruser:
list){
ElementchildNode=newElement("user");
ElementidNode=newElement("id");
idNode.setText(user.getId()+"");
ElementusernameNode=newElement("username");
usernameNode.setText(user.getUsername());
ElementpasswordNode=newElement("password");
passwordNode.setText(user.getPassword());
childNode.addContent(idNode);
childNode.addContent(usernameNode);
childNode.addContent(passwordNode);
root.addContent(childNode);
}
Documentdocument=newDocument(root);
XMLOutputterxmlOutputter=newXMLOutputter(Format.getPrettyFormat());
try{
xmlOutputter.output(root,newFileOutputStream(filepath));
}catch(FileNotFoundExceptione){
e.printStackTrace();
}catch(IOExceptione){
e.printStackTrace();
}
}
/**
*从xml中解析出用户信息,存储到List中
*@paramfilePath文件路径
*@return用户列表
*/
publicListgetUserinfoListFromXML(StringfilePath){
ListuserList=newArrayList();
SAXBuildersaxbuilder=newSAXBuilder();
try{
Documentdocument=saxbuilder.build(newFile(filePath));
Elementelement=document.getRootElement();
Listlist=element.getChildren();
for(inti=0;iElemente=(Element)list.get(i);
Useruser=newUser();user.setId(Integer.parseInt(e.getChild("id").getText()));
user.setUsername(e.getChild("username").getText());
user.setPassword(e.getChild("password").getText());
userList.add(user);
}
}catch(JDOMExceptione){
e.printS