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;
    }
}

HTH

于 2015-06-20T23:46:38.517 に答える