2013-06-12 37 views
0

我在填写我的ArrayList<ArrayList<String>>时遇到了一些麻烦您能帮我吗?使用dom4j填充ArrayList <ArrayList <String>>与XML的内容

我有下面的XML文件

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

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

而且我的代码:

public static void readSimulation(){ 
     Element root = doc.getRootElement(); 
     DefaultListModel tempList = new DefaultListModel(); 
     ArrayList<String> tempAL = new ArrayList(); 
     ArrayList<ArrayList<String>> strAL = new ArrayList<>(); 
     Element innerElement = null; 
     for (Iterator i = root.elementIterator(); i.hasNext();) { 
      Element element = (Element) i.next(); 
      tempList.addElement(element.attributeValue("id")); 
      for (Iterator j = element.elementIterator(); j.hasNext();) { 
       innerElement = (Element) j.next(); 
       tempAL.add(innerElement.getTextTrim().toString()); 

      } 
       strAL.add(tempAL);   
     } 

我需要以下结果:

[[1,1,1,1,1] [2,2,2] [3,3,3]] 

但我不知道为什么,我得到像这样的东西:

[[1,1,1,1,1,2,2,2,3,3,3] [1,1,1,1,1,2,2,2,3,3,3] [1,1,1,1,1,2,2,2,3,3,3]] 

我在做什么错?

回答

1

这是因为您应该在for循环的每次迭代中清除tempAL列表。现在您将添加到相同的数组列表中。

相关问题