0
我正在使用JAXB將xml轉換爲對象。在做了一些教程之後,我可以成功將簡單的xml(具有單個對象和唯一元素標記)轉換爲對象。然後我需要處理更復雜的xml,它有多個實例和一個父標籤。我仍然使用類似的結構。但我無法得到三個國家對象的預期產出。我的代碼有什麼問題?請幫忙。 的IntelliJ IDE控制檯輸出是:多實例xml文件ummarshalling到對象
[email protected]
Process finished with exit code 0
xml文件:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?><Countries>
<Country>
<Country_Name>Spain</Country_Name>
<Country_Capital>Madrid</Country_Capital>
<Country_Continent>Europe</Country_Continent>
</Country>
<Country>
<Country_Name>USA</Country_Name>
<Country_Capital>Washington</Country_Capital>
<Country_Continent>America</Country_Continent>
</Country>
<Country>
<Country_Name>Japan</Country_Name>
<Country_Capital>Tokyo</Country_Capital>
<Country_Continent>Asia</Country_Continent>
</Country>
</Countries>
Countries.java
import javax.xml.bind.annotation.XmlAttribute;
import javax.xml.bind.annotation.XmlElement;
import javax.xml.bind.annotation.XmlRootElement;
import javax.xml.bind.annotation.XmlType;
@XmlType(propOrder = { "name", "capital", "foundation", "continent" , "population"})
@XmlRootElement(name = "Countries")
public class Countries {
private int population;
private String name;
private String capital;
private int importance;
private String foundation;
private String continent;
@XmlElement(name = "Country_Population")
public void setPopulation(int population) {
this.population = population;
}
@XmlElement(name = "Country_Name")
public void setName(String name) {
this.name = name;
}
@XmlElement(name = "Country_Capital")
public void setCapital(String capital) {
this.capital = capital;
}
@XmlAttribute(name = "importance", required = true)
public void setImportance(int importance) {
this.importance = importance;
}
@XmlElement(name = "Country_foundation")
public void setFoundation(String foundation) {
this.foundation = foundation;
}
@XmlElement(name = "Country_Continent")
public void setContinent(String continent) {
this.continent = continent;
}
}
CountryReader.java
import javax.xml.bind.JAXBContext;
import javax.xml.bind.JAXBException;
import javax.xml.bind.Unmarshaller;
import java.io.File;
public class CountryReader {
public static void main(String[] args) throws JAXBException {
File file = new File("country.xml");
JAXBContext jaxbContext = JAXBContext.newInstance(Countries.class);
Unmarshaller jaxbUnmarshaller = jaxbContext.createUnmarshaller();
Countries countres = (Countries)jaxbUnmarshaller.unmarshal(file);
System.out.println(countres);
}
}