В настоящее время я пытаюсь получить список строк из некоторого XML с помощью Apache Digester, как описано в Как добавить литеральные элементы в объект List? в разделе FAQ.
У меня возникает следующая ошибка:
[DEBUG] Digester - [SetNextRule]{job/editorial/articlegroup/article} Call java.util.ArrayList.setFields([This, This, is, is, a, a, test, test, , , , ])
[ERROR] Digester - End event threw exception <java.lang.NoSuchMethodException: No such accessible method: setFields() on object: java.util.ArrayList>java.lang.NoSuchMethodException: No such accessible method: setFields() on object: java.util.ArrayList
Упрощенная версия XML, которую я использую, выглядит следующим образом:
<job>
<editorial>
<articlegroup>
<article>
<text>
<content><![CDATA[This]]></content>
</text>
<text>
<content><![CDATA[is]]></content>
</text>
<text>
<content><![CDATA[a]]></content>
</text>
<text>
<content><![CDATA[test]]></content>
</text>
</article>
</articlegroup>
</editorial>
</job>
И исходный код:
public class PPJob {
List<String> fields;
public List<String> getFields() {
return fields;
}
public void setFields(List<String> fields) {
this.fields = fields;
}
}
addObjectCreate("job", PPJob.class);
addSetProperties("job");
addObjectCreate("job/editorial/articlegroup/article", ArrayList.class);
addCallMethod("job/editorial/articlegroup/article/text/content", "add", 1);
addCallParam("job/editorial/articlegroup/article/text/content", 0);
addSetNext("job/editorial/articlegroup/article", "setFields");
PPJob result = (PPJob)super.parse([THE XML]);
Я довольно новичок в использовании Дигестера, и мне трудно найти примеры того, что мне нужно.
Может кто-нибудь увидеть, где яидет не так?