我試圖使用Jaxb解組將XML文件轉換爲Java對象。在將XML轉換爲Java對象時獲取不正確的值
public static void main(String[] args) {
String input = "<project xmlns=\"http://maven.apache.org/POM/4.0.0\" xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" xsi:schemaLocation=\"http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd\">"+
" <key>1</key>" +
"<income>100.335</income>" +
"</project>" ;
NexusClient c1 = new NexusClient();
c1.getObject(input);
}
/*********/
public boolean getObject(String input) {
InputSource inputSource = new InputSource(new StringReader(input));
System.out.println(inputSource);
try {
JAXBContext jaxbContext = JAXBContext
.newInstance(mavenEntity.class);
Unmarshaller jaxbUnmarshaller = jaxbContext.createUnmarshaller();
mavenEntity mavenObject = (mavenEntity) jaxbUnmarshaller
.unmarshal(inputSource);
System.out.println("Success"+mavenObject.getIncome());
} catch (JAXBException e) {
System.out.println("Unable to parse the XML Context");
e.printStackTrace();
return false;
}
return true;
}
我在嘗試提取「收入」標記信息時遇到問題。我無法使用Jaxb提取正確的值。我pojo類是:
@XmlRootElement(name = "project", namespace = "http://maven.apache.org/POM/4.0.0")
@XmlAccessorType(XmlAccessType.FIELD)
public class mavenEntity {
@XmlElement(name = "key", type = String.class)
private String key;
@XmlElement(name = "income", type = String.class)
private String income;
public String getKey() {
return key;
}
public void setKey(String key) {
this.key = key;
}
public String getIncome() {
return income;
}
public void setIncome(String income) {
this.income = income;
}
}
我得到Null作爲XML中的任何標籤的輸出。我猜在XML Annotation中我的名字空間存在一些問題。但我真的不明白它是什麼。在發佈之前,我參考了一些類似於this的鏈接做了一些基礎工作,但仍然是我的結果不正確。有人可以幫我嗎。
很抱歉,但...什麼,其中C1爲? –
對不起,我會更新它 – Vikram
也更新與實際發生的事情,例如,什麼是失敗模式? –