为了实现我目前的一个Flex与Java交互的功能,需要把一个List转换成Document,即org.w3c.dom.Document。
具体是这样的,用Java读取一个数据库中的表,如表名叫【学生】,里面存了一些学生的信息,我把每条信息存进一个学生Bean里,再把学生一条一条的存进一个List。然后return给Flex。
由于功能的变动,List不能满足我的需要了,我需要把这个List转换成一个Document,或者不用List,直接读数据库生成一个Document也行,请问怎么做?我从来没用过Document这个类,还请大家帮忙。~ 

解决方案 »

  1.   

    就是生成一个xml,照着例子做就是了
      

  2.   

    使用List生成一个Document,Document你可以随便处理,甚至于保存到XML中,或者传给其他对象
    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>