繁体   English   中英

使用JAXB从unmarshalled java对象获取xml元素名称

[英]Getting xml element name from unmarshalled java object with JAXB

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

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

假设我们有注释实体

 @XmlRootElement
 public class Product {
      String name;      

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

下面的代码将使用java Reflection API打印“sss”。 这里的“产品”是Product类的一个对象

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注释属性,您可以使用以下内容:

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM