为了实现我目前的一个Flex与Java交互的功能,需要把一个List转换成Document,即org.w3c.dom.Document。
具体是这样的,用Java读取一个数据库中的表,如表名叫【学生】,里面存了一些学生的信息,我把每条信息存进一个学生Bean里,再把学生一条一条的存进一个List。然后return给Flex。
由于功能的变动,List不能满足我的需要了,我需要把这个List转换成一个Document,或者不用List,直接读数据库生成一个Document也行,请问怎么做?我从来没用过Document这个类,还请大家帮忙。~
具体是这样的,用Java读取一个数据库中的表,如表名叫【学生】,里面存了一些学生的信息,我把每条信息存进一个学生Bean里,再把学生一条一条的存进一个List。然后return给Flex。
由于功能的变动,List不能满足我的需要了,我需要把这个List转换成一个Document,或者不用List,直接读数据库生成一个Document也行,请问怎么做?我从来没用过Document这个类,还请大家帮忙。~
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import javax.xml.parsers.ParserConfigurationException;
import javax.xml.transform.Transformer;
import javax.xml.transform.TransformerConfigurationException;
import javax.xml.transform.TransformerException;
import javax.xml.transform.TransformerFactory;
import javax.xml.transform.dom.DOMSource;
import javax.xml.transform.stream.StreamResult;import org.w3c.dom.Document;
import org.w3c.dom.Element;
import org.xml.sax.SAXException;public class Test {
public static void main(String[] args) throws ParserConfigurationException,
SAXException, IOException { DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
factory.setIgnoringElementContentWhitespace(true);
DocumentBuilder db = factory.newDocumentBuilder();
//Document doc = db.parse(new File("user.xml"));
Document doc = db.newDocument();
//Element root = doc.create;
List<User> users = new ArrayList<User>();
users.add(new User("Biao", 100));
users.add(new User("Kiwi", 229));
Element usersElem = doc.createElement("users");
for (User user : users) {
Element userElem = doc.createElement("user");
Element nameElem = doc.createElement("name");
Element ageElem = doc.createElement("age");
nameElem.setTextContent(user.getName());
ageElem.setTextContent(user.getAge().toString());
userElem.appendChild(nameElem);
userElem.appendChild(ageElem);
usersElem.appendChild(userElem);
}
doc.appendChild(usersElem);
saveXml("user.xml", doc);
System.out.println("End");
}
public static void saveXml(String fileName, Document doc) {//将Document输出到文件
TransformerFactory transFactory=TransformerFactory.newInstance();
try {
Transformer transformer = transFactory.newTransformer();
transformer.setOutputProperty("indent", "yes"); DOMSource source=new DOMSource();
source.setNode(doc);
StreamResult result=new StreamResult();
result.setOutputStream(new FileOutputStream(fileName));
transformer.transform(source, result);
} catch (TransformerConfigurationException e) {
e.printStackTrace();
} catch (TransformerException e) {
e.printStackTrace();
} catch (FileNotFoundException e) {
e.printStackTrace();
}
}
}class User {
private String name;
private Integer age; public User() { } public User(String name, Integer age) {
this.name = name;
this.age = age;
} public String getName() {
return name;
} public void setName(String name) {
this.name = name;
} public Integer getAge() {
return age;
} public void setAge(Integer age) {
this.age = age;
}}输出
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<users>
<user>
<name>Biao</name>
<age>100</age>
</user>
<user>
<name>Kiwi</name>
<age>229</age>
</user>
</users>