使用JAXB从unmarshalled java对象获取xml元素名称 [英] Getting xml element name from unmarshalled java object with JAXB
本文介绍了使用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屋!
查看全文