如何使用commons-digester解析XML中重复元素中的第一个元素?

时间:2015-06-18 08:33:21

标签: xml apache-commons-digester

示例XML:

@ObjectCreate(pattern = "parent")
public class Parent {

   @BeanPropertySetter(pattern = "parent/child")
   private String child;

   public String getChild() {
       return child;
   }

   public void setChild(String child) {
       this.child= child;
   }
}

我正在尝试使用commons-digester注释来解析xml。我只想得到xml的第一个元素。但它总是从重复元素中获得最后一个元素。你可以帮助我吗?

这是示例代码:

#test {
  height: 300px;
  background:
    /* overlay */
    linear-gradient(to right, rgba(0, 0, 0, .5) 0, rgba(0, 0, 0, .5) 100%),
    /* jpg img*/
    url("http://lorempixel.com/400/300/nature/5/");
}

1 个答案:

答案 0 :(得分:0)

默认情况下,Digester将按顺序为每个子元素触发规则,这就是最后一个获胜的原因。

可以使用自定义规则执行某些操作,但在您的情况下,最简单的解决方案似乎是更新setter以忽略已设置的子项:

public void setChild(String child) {
    if (this.child == null) {
        this.child = child;
    }
}

HTH