2017-02-13 40 views
1

我希望你能幫助我。正如我可以涉及一個類,兩個不同的文件與jaxb

目前我收到xml格式的兩個文件,我想知道如何使用jaxb將這兩個文件關聯到同一個類。

Company.xml

<?xml version="1.0" encoding="utf-8"?> 
</records> 
    <record> 
     <id>4<id> 
     <companyName>B</companyName> 
     ...... 
    </record> 
    <record> 
     <id>7<id> 
     <companyName>B</companyName> 
     ...... 
    </record> 
</records> 

Employees.xml

<?xml version="1.0" encoding="utf-8"?> 
<records>   
    <record> 
     <EmployeeName>AA</EmployeeName> 
     <CompanyID>2</CompanyID> 
    </record> 
    <record> 
     <EmployeeName>AB</EmployeeName> 
     <CompanyID>2</CompanyID> 
    </record> 
</records> 

我想知道我怎麼能產生涉及這些領域的ID公司

public class Companys{ 
      private List<Company> list; 
    } 

    public class Company{ 
     private String companyName; 
     private Integer id; 
     ......... 
     //I need use JaxB --reference ID company 
     private List<Employees> list; 
    } 


    public class Employee{ 
     private String Name; 
     private Integer idCompany; 
     ....................... 
    } 
+0

內的方法討論了許多次:http://stackoverflow.com/questions/11128191/jaxb-unmarshalling-xml-with-multiple-名字換了,同樣的元素 – Andremoniy

回答

1

您可以使用地圖。

public class Companies{ 
    private Map<Integer, Company> map = new HashMap<>(); 

    void put(Integer id, Company company) { 
     map.put(id, company); 
    } 

    Company get(Integer id) { 
     return map.get(id); 
    } 
} 

一旦你有你的員工名單,你可以遍歷它們並將它們應用到公司地圖上。

Company company = companies.get(employee.getIdCompany()); 
company.addEmployee(employee); 

或者,您可以創建名爲公司addEmployee

void addEmployee(Employee employee) { 
    companies.get(employee.getIdCompany()).addEmployee(employee); 
} 
相關問題