-1
我必須使用javax.xml.bind.annotation庫中的註釋在java中編寫Config-Reader。問題是我真的不知道如何到達內部節點(在我的情況下是mailConfig)。下面是我的XML文件的格式:如何使用帶註解的XML從內部節點讀取字符串(Java)
<?xml version="1.0" encoding="UTF-8">
<config>
<avoidanceList>
<avoid> item1 </avoid>
<avoid> item2 </avoid>
</avoidanceList>
<ignoreList>
<ignore> item1 </ignore>
</ignoreList>
<mailConfig>
<from> From </from>
<toList>
<to> To1 </to>
<to> To2 </to>
</toList>
</mailConfig>
</config>
我可以在avoidanceList和ignoreList閱讀,但我的代碼不能在整個mailConfig讀取。我在某處讀到兩個班會解決問題,但事實並非如此。這是我的讀者代碼:
@XmlRootElement(name = "config")
public final class Cfg {
private List<String> avoidanceList;
private List<String> ignoreList;
private MailConfig mailConfig;
@XmlElementWrapper(name = "avoidanceList")
@XmlElement(name = "avoid", required = false)
public List<String> getAvoidanceList() {
return avoidanceList;
}
@XmlElementWrapper(name = "ignoreList")
@XmlElement(name = "ignore", required = false)
public List<String> getIgnoreList() {
return ignoreList;
}
@XmlElements({
@XmlElement(name="from", type=String.class),
@XmlElement(name="to", type=String.class)})
public MailConfig getMailConfig() {
return mailConfig;
}
}
而這裏MailConfig類:
@XmlRootElement(name = "mailConfig")
public class MailConfig {
private String from;
private List<String> toList;
public MailConfig(String from, List<String> toList) {
this.from = from;
this.toList = toList;
}
@XmlElement(name = "from", required = false)
public String getFrom() {
return from;
}
@XmlElementWrapper(name = "toList")
@XmlElement(name = "to", required = false)
public List<String> getToList() {
return toList;
}
}
這是我第一次來處理XML文件的在Java中,所以我知道代碼也許是completlly錯誤。我還沒有找到解決方案的註釋,所以如果有人可以幫助我,這將是偉大的:)
在此先感謝!
感謝的人完美的作品! – TheeDudee