阅读我创建的以下XML文件时出现问题。无法使用JAXB读取XML文件?
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<prsettings>
<prsetting>
<players>
<player>
<lastDateEntered>0</lastDateEntered>
<lastTournament>1</lastTournament>
<playerId>0</playerId>
<playersStatus>unrated</playersStatus>
<playersTag>asfd</playersTag>
<score>5.0</score>
<setsPlayed>0</setsPlayed>
<tourneysWhileInactive>0</tourneysWhileInactive>
</player>
<player>
<lastDateEntered>0</lastDateEntered>
<lastTournament>1</lastTournament>
<playerId>1</playerId>
<playersStatus>unrated</playersStatus>
<playersTag>ba</playersTag>
<score>5.0</score>
<setsPlayed>0</setsPlayed>
<tourneysWhileInactive>0</tourneysWhileInactive>
</player>
<player>
<lastDateEntered>0</lastDateEntered>
<lastTournament>1</lastTournament>
<playerId>2</playerId>
<playersStatus>unrated</playersStatus>
<playersTag>asdgf</playersTag>
<score>5.0</score>
<setsPlayed>0</setsPlayed>
<tourneysWhileInactive>0</tourneysWhileInactive>
</player>
</players>
<challongeApiKey>asbg</challongeApiKey>
<challongeUsername>asf</challongeUsername>
<implementPointDecay>false</implementPointDecay>
<numSetsNeeded>5</numSetsNeeded>
<numTourneysForActive>2</numTourneysForActive>
<numTourneysForInnactive>5</numTourneysForInnactive>
<numTourneysNeeded>5</numTourneysNeeded>
<pointsRemoved>5</pointsRemoved>
<prName>asf</prName>
<removeInnactive>false</removeInnactive>
<showPlacingDiff>false</showPlacingDiff>
<showPointDiff>false</showPointDiff>
<startOfDecay>3</startOfDecay>
</prsetting>
我PRSetting对象的observableList和PRSetting对象中我有运动员的ArrayList。这就是为什么我创建了一个POJO文件,并且在PRSetting对象中,我设置的唯一对象是以下内容。
@XmlElementWrapper(name="players")
@XmlElement(name ="player")
private ArrayList<PlayerProfile> playersList = new ArrayList<PlayerProfile>();
这也是我的POJO文件,应该是用来写和读的XML文件。
@XmlRootElement (name = "prsettings")
public class PRSettingsWrapper {
private ObservableList<PRSettings> prList;
@XmlElement(name = "prsetting")
public ObservableList<PRSettings> getPrList(){
return prList;
}
public void setPrList(ObservableList<PRSettings> prList){
this.prList = prList;
}
}
出于某种原因,每当我试图用下面的代码
JAXBContext context = JAXBContext
.newInstance(PRSettingsWrapper.class);
Unmarshaller um = context.createUnmarshaller();
// Reading XML from the file and unmarshalling.
PRSettingsData wrapper = (PRSettingsData) um.unmarshal(file);
prList.clear();
prList.addAll(wrapper.getPrList());
// Save the file path to the registry.
setPrSettingsFilePath(file);
我似乎无法到XML文件成功加载到对象加载数据。文件路径工作正常,但我不知道我做错了什么。
非常感谢您的帮助。
我不小心复制了我的XML不正确,但它设置正确后,我检查了链接的网站上。而我的代码几乎与你的一样,除了你没有在方法之上的PRSettings类中的@XmlElement,但由于某种原因,它仍然不起作用 –
我还在我的方法下添加了JAXBException,它似乎是如果我得到一个空指针例外,只要它开始解组 –
所以它完全读取它是真棒,但由于某种原因写入XML以下 challongeApiKey> ...... 3 startOfDecay>然后打印出完美的一切。它仍然读得很好,所以它可以以这种方式工作,但是你有一个想法,为什么它可能会这样做?无论如何,感谢您的帮助! –