-->

如何让阅读的JXPath名@XmlElement属性,而不是实际的字段名?(How to make

2019-11-03 10:57发布

我有一个类,看起来像这样一个领域

@XmlElement(name = "Name", namespace = "a:b:c:1", required = true)
protected String firstName

我想的JXPath使用这样

String name = (String) context.getValue("Name");

但它不能识别的XMLElement name属性。 有没有什么办法让它这样做呢?

Answer 1:

我不认为你可以 。 允许的JXPath豆层次的导航使用标准的豆获得/是符号,但不提供现场访问注释的方法。

我想你也许应该看看这个答案再。 找到注解 。 也许你可以用一个解决方案的JXPath结合?



Answer 2:

我这样做是因为布赖恩建议

Field[] fields = rq.getClass().getDeclaredFields();
    Map<String, String> annotationMap = new HashMap<>();

    for(Field field:fields)
    {

        if(field.getAnnotation(XmlElement.class).name().equals("Name"))
        {
            annotationMap.put("Name", field.getName());
        }
    }

String name = (String) context.getValue(annotationMap.get("Name"));
    System.out.println(name);

但不会这种方法是乏味的,如果我有100场以上? 有一个更好的方法吗?



文章来源: How to make jxpath read @xmlelement name attribute instead of actual field name?
标签: java jxpath