我在使用 JAXB 解组 XML 文件时遇到问题。我需要获取一些名为“display_value”的 xml 元素的属性。这是 XML 文件的一个小示例:
<unload>
<change_request>
<active>true</active>
<approval>not requested</approval>
<assigned_to display_value=""/>
<alt_poc display_value="Tom Ford">056468745677484657</alt_poc>
<poc display_value="Matt Ryan">56465148754878</poc>
</change_request>
</unload>
我假设在我的 ChangeRequest 类中,我只需在具有该属性的 display_value 字段上注释 @XmlAttribute(name="display_value),例如 alt_poc 但似乎不起作用。这是我的 ChangeRequest 类的示例。
@XmlAccessorType(XmlAccessType.FIELD)
public class ChangeRequest{
String active;
String approval;
String assigned_to;
String alt_poc;
String poc;
}
我确实有一个包含 ChangeRequest 对象列表的类,称为 ChangeRequests。这个类很简单,看起来像:
@XmlRootElement(name="unload")
public class ChangeRequests{
ArrayList<ChangeRequest> changeRequestList;
@XmlElement(name="change_request")
public ArrayList<ChangeRequest> getRecords(){
return changeRequestList;
}
最后,我将向您展示我在其中执行所有这些操作的 JAXB 代码
URL url = new URL("wwww.somethingInteresting.com/syz.xml");
try {
JAXBConext jc = JAXBContext.newInstance(ChangeRequest.class, ChangeRequests.class);
Unmarshaller un = jc.createUnmarshaller();
return (ChangeRequests) un.unmarshal(url);
} catch(JAXBException e){
thow new RunTimeException(e);
}
目前,所有代码都有效,但是当我需要它时我无法获得 display_value。我得到的不是 display_value,而是像 65484435487 这样的长数字。
任何人都可以提供的任何帮助都会很棒。谢谢!