使用JAXB从unmarshalled java对象获取xml元素名称 [英] Getting xml element name from unmarshalled java object with JAXB

查看:106
本文介绍了使用JAXB从unmarshalled java对象获取xml元素名称的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我的Java模型中有带注释的字段 @XmlElement(name =xxx)。

I have fields annotated with @XmlElement(name="xxx") in my Java model.

有没有办法以编程方式获取xml元素名称?

Is there a way to get the xml element name programatically?

推荐答案

假设我们有注释实体

 @XmlRootElement
 public class Product {
      String name;      

      @XmlElement(name="sss")
      public void setName(String name) {
           this.name = name;
      }
}

以下代码将使用 java Reflection API 。这里'product'是Product class的对象

Code below will print "sss" using java Reflection API. Here 'product' is an object of Product class

import java.lang.reflect.Method;
...
Method m = product.getClass().getMethod("setName",String.class);
XmlElement a = m.getAnnotation(XmlElement.class);
String nameValue = a.name();
System.out.println(nameValue);

如果您需要从私有字段获取@XmlElement注释属性,可以使用这样的东西:

If you need to get @XmlElement annotation attribute from private field, you could use something like this:

Field nameField = product.getClass().getDeclaredField("name");
nameField.setAccessible(true);
XmlElement a = nameField.getAnnotation(XmlElement.class);
String nameValue = a.name();
System.out.println(nameValue);

这篇关于使用JAXB从unmarshalled java对象获取xml元素名称的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆