0

示例 XML:

<parent>
  <child>1</child>
  <child>2</child>
  <child>3</child>
</parent>

我正在尝试使用 commons-digester 注释解析 xml。我只想获取 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;
   }
}
4

1 回答 1

0

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

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

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

高温高压

于 2015-06-20T23:46:38.517 回答