我正在使用 Apache Digester 解析如下所示的 XML,并且我编写了下面的代码来解析它。解析似乎没问题(我在 KSO 属性的 setter 方法上添加了调试点),但是 KSO 代码的对象没有添加到我的 Header bean 中。我需要做什么才能将 Kso bean 添加到 Header bean 中?
示例 XML -
<lineups country="USA">
<header headerId="IN67397">
<name>Great Western</name>
<kso ksoId="17758">GW Media</kso>
</header>
</lineups>
以下是我在消化器中创建的内容:
Digester digester = new Digester();
digester.setValidating(false);
digester.push(new Headers()); // There will be multiple
digester.addObjectCreate("gn/lineups/header",
"com.sample.model.header.Header");
digester.addSetProperties("gn/lineups/header"); // Id
digester.addSetProperties("gn/lineups/header/name");
digester.addCallMethod("gn/lineups/header/name", "setName", 0);
// KSO Code
digester.addObjectCreate("gn/lineups/headend/kso",
"com.sample.model.header.Kso");
digester.addSetProperties("gn/lineups/headend/kso"); //sets the ksoId
digester.addCallMethod("gn/lineups/headend/kso", "setName", 0);
public class Header
{
private String headerId;
private String name;
private Kso kso;
// getter setters are in place
}
Kso类 -
public class Kso
{
private String ksoId;
private String name;
// getter setters are in place
}