2015-06-18 1 views
0

Пример XML:Как я могу разобрать только один элемент из повторяющихся элементов в XML, используя commons-digester?

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

Я пытаюсь разобрать XML с помощью Викисклада 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; 
    } 
} 

ответ

0

Digester, по умолчанию, запустите правило для каждого дочернего элемента в порядке, поэтому последний один выигрывает.

можно сделать что-то с настраиваемыми правилами, но самое простое решение в вашем случае, казалось бы, просто обновить сеттер игнорировать ребенка, если он уже установлен:

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

HTH