3

XMLからファイルを書き込もうとしていますArrayList<Element>。ただし、出力は期待したものではなく、問題の原因を特定できないようです。手伝ってくれませんか?

これが私のコードの一部です:

    if (e.getSource() == saveMenu) {
        writeToXML();
        JOptionPane.showMessageDialog(Simulation.this, 
                    "File saved", 
                    "Simulation", JOptionPane.INFORMATION_MESSAGE);

    }

 public void writeToXML() throws IOException {

     int size = alElementToXML.size();
     for (int i = 0; i < size; i++) {
         alIds.add(alElementToXML.get(i).attributeValue("id"));
     }

     OutputFormat format = OutputFormat.createPrettyPrint();
     format.setEncoding("UTF-8");
     XMLWriter xmlWriter = null;
     xmlWriter = new XMLWriter(new OutputStreamWriter(
             new FileOutputStream("Simulation_" + MASG_GUI.getContainerNameTxt().getText() + "_Details.xml"), "UTF8"),
             format);
     try {
         for (int i = 0; i < size; i++) {
             xmlWriter.write(configs.XMLwriterDOM4J.createXMLDocumentForSimulations(alElementToXML, alIds.get(i)));
         }
     } finally {

         xmlWriter.flush();
         xmlWriter.close();
     }
 }

これはcreateXMLDocumentForSimulations方法です:

public static Document createXMLDocumentForSimulations(ArrayList<Element> elems, String id) {

    Document document = DocumentHelper.createDocument();
    Element root = document.addElement("simulation");
    Element agent1 = root.addElement("member").addAttribute("id", id);
    int size = Simulation.getAlElementToXML().size();
    for (int i = 0; i < size; i++) {           
         agent1.addElement(elems.get(i).asXML());
    }
    return document;
}

そして、私が得る出力の一例:

<?xml version="1.0" encoding="UTF-8"?>

<simulation>
  <member id="House">
    <<member id="House"><id>1</id><type>1</type><max_usage>1</max_usage><min_usage>1</min_usage><average_usage>1</average_usage></member>/>
    <<member id="CSP"><id>1</id><type>1</type></member>/>
    <<member id="VPP"><id>6</id><type>6</type></member>/>
  </member>
</simulation>
<?xml version="1.0" encoding="UTF-8"?>

<simulation>
  <member id="CSP">
    <<member id="House"><id>1</id><type>1</type><max_usage>1</max_usage><min_usage>1</min_usage><average_usage>1</average_usage></member>/>
    <<member id="CSP"><id>1</id><type>1</type></member>/>
    <<member id="VPP"><id>6</id><type>6</type></member>/>
  </member>
</simulation>

私が欲しかったのは次のようなものでした:

<?xml version="1.0" encoding="UTF-8"?>

<simulation>
  <member id="House">
    <id>1</id>
    <type>1</type>
    <max_usage>1</max_usage>
    <min_usage>1</min_usage>
    <average_usage>1</average_usage>
  </member>
  <member id="VPP">
    <id>6</id>
    <type>6</type>
  </member>
</simulation>

私は何を間違っていますか?期待される出力を得るためにそれを修正するにはどうすればよいですか?

ありがとう

4

1 に答える 1