Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/xml/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java xml保存程序优化_Java_Xml - Fatal编程技术网

Java xml保存程序优化

Java xml保存程序优化,java,xml,Java,Xml,我有一个组织在树中的对象集合,我希望将其保存为XML文件,但我希望尽可能以最佳方式执行此操作。我用这样的方法(见代码)来做,但如果有人能告诉我更好的方法,我会很乐意: DocumentBuilderFactory docFactory = DocumentBuilderFactory.newInstance(); DocumentBuilder docBuilder = docFactory.newDocumentBuilder(); Document doc = d

我有一个组织在树中的对象集合,我希望将其保存为XML文件,但我希望尽可能以最佳方式执行此操作。我用这样的方法(见代码)来做,但如果有人能告诉我更好的方法,我会很乐意:

    DocumentBuilderFactory docFactory = DocumentBuilderFactory.newInstance();
    DocumentBuilder docBuilder = docFactory.newDocumentBuilder();


    Document doc = docBuilder.newDocument();
    Element rootElement = doc.createElement("company");
    doc.appendChild(rootElement);


    Element staff = doc.createElement("Staff");
    rootElement.appendChild(staff);


    Attr attr = doc.createAttribute("id");
    attr.setValue("1");
    staff.setAttributeNode(attr);


    Element firstname = doc.createElement("firstname");
    firstname.appendChild(doc.createTextNode("yong"));
    staff.appendChild(firstname);


    Element lastname = doc.createElement("lastname");
    lastname.appendChild(doc.createTextNode("mook kim"));
    staff.appendChild(lastname);


    Element nickname = doc.createElement("nickname");
    nickname.appendChild(doc.createTextNode("mkyong"));
    staff.appendChild(nickname);


    Element salary = doc.createElement("salary");
    salary.appendChild(doc.createTextNode("100000"));
    staff.appendChild(salary);


    TransformerFactory transformerFactory = TransformerFactory.newInstance();
    Transformer transformer = transformerFactory.newTransformer();
    DOMSource source = new DOMSource(doc);
    StreamResult result = new StreamResult(new File("C:\\file.xml"));


    transformer.transform(source, result);
答案是:使用


在使用它的情况下,您可以在字段和类上放置@XmlElement之类的注释,以便将它们无缝地序列化/反序列化为XML。它将毫无问题地处理树中的所有递归。

+1对于JAXB,还请注意JAXB有将Java对象转换为XML的默认规则,因此您只需在希望指定非默认映射的地方添加注释:@Funtik-JAXB也非常易于使用:@Blaise Doughan+1用于博客文章。我的观点是基于我几年前在JAXB方面的糟糕经历。当时我发现Simple是更简单、更高效的XML转换框架;我需要的是使用尽可能少的内存,因为这只是一个更大项目的一小部分。