如何使用 commons-digester 仅解析 XML 中重复元素中的第一个元素?
How can I parse only the 1st element from a repetitive elements in a XML using commons-digester?
样本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;
}
}
默认情况下,Digester 将按顺序为每个子元素触发规则,这就是最后一个获胜的原因。
可以使用自定义规则做一些事情,但在您的情况下,最简单的解决方案似乎是更新 setter 以忽略已设置的子项:
public void setChild(String child) {
if (this.child == null) {
this.child = child;
}
}
HTH
样本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;
}
}
默认情况下,Digester 将按顺序为每个子元素触发规则,这就是最后一个获胜的原因。
可以使用自定义规则做一些事情,但在您的情况下,最简单的解决方案似乎是更新 setter 以忽略已设置的子项:
public void setChild(String child) {
if (this.child == null) {
this.child = child;
}
}
HTH