小编use*_*891的帖子

JAXB Unmarshalling XML属性的问题

我正在解决使用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>
Run Code Online (Sandbox Code Playgroud)

我认为在我的ChangeRequest类,我只想对有属性,如alt_poc但是这似乎并没有工作DISPLAY_VALUE领域注释@XmlAttribute(NAME ="DISPLAY_VALUE).这是我ChangeRequest类的一个实例.

@XmlAccessorType(XmlAccessType.FIELD)
public class ChangeRequest{
  String active;
  String approval;
  String assigned_to;
  String alt_poc;
  String poc;
}
Run Code Online (Sandbox Code Playgroud)

我有一个包含ChangeRequest对象列表的类,名为ChangeRequests.这个类很简单,看起来像:

@XmlRootElement(name="unload")
public class ChangeRequests{
ArrayList<ChangeRequest> changeRequestList;

@XmlElement(name="change_request")
public ArrayList<ChangeRequest> getRecords(){
  return changeRequestList;
}
Run Code Online (Sandbox Code Playgroud)

最后,我将向您展示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);
}
Run Code Online (Sandbox Code Playgroud)

目前,所有代码都有效,但是当我需要它时,我无法获得display_value.而不是display_value我得到像65484435487这样的长数字.

任何人都可以提供任何帮助都会很棒.谢谢!

java xml jaxb servicenow

5
推荐指数
1
解决办法
5913
查看次数

标签 统计

java ×1

jaxb ×1

servicenow ×1

xml ×1