Androidでxmlファイルを処理するためにcommons-digester.jarを使用する必要があります。実際、これはJavaでxml処理にcommons-digester.jarを使用するオープンソースプログラムであり、Androidをサポートするように変更する必要がありますが、このエラーが発生します:
Digester.getParser: java.lang.UnsupportedOperationException: このパーサーは仕様「不明」バージョン「0.0」をサポートしていません
java.lang.NullPointerException 03-29 11:24:02.590: W/System.err(17018): org.apache.commons.digester3.Digester.getXMLReader(Digester.java:790) 03-29 11:24:02.590 で: W/System.err(17018): org.apache.commons.digester3.Digester.parse(Digester.java:1588) 03-29 11:24:02.590: W/System.err(17018): org. apache.commons.digester3.Digester.parse(Digester.java:1557) 03-29 11:24:02.590: W/System.err(17018): com.tashkeel.android.utilities.alkhalil.DbLoader.LoadPrefixes(DbLoader) .java:65) 03-29 11:24:02.590: W/System.err(17018): com.tashkeel.android.utilities.alkhalil.analyse.Analyzer.(Analyzer.java:64) 03-29 11: 24:02.600: W/System.err(17018): com.tashkeel.android.MainActivity$1.run(MainActivity.java:80) 03-29 11:24:02.600: W/System.err(17018): at java.lang.Thread.run(Thread.java:856) 03-29 11:24:03.240: W/System.err(17018):
commons-digester を使用するコードのサンプル
Digester digester = new Digester();
digester.addObjectCreate("prefixes", Lists.class);
digester.addObjectCreate("prefixes/prefixe", Prefixe.class);
digester.addSetProperties("prefixes/prefixe", "unvoweledform",
"unvoweledform");
digester.addSetProperties("prefixes/prefixe", "voweledform",
"voweledform");
digester.addSetProperties("prefixes/prefixe", "desc", "desc");
digester.addSetProperties("prefixes/prefixe", "classe", "classe");
digester.addSetNext("prefixes/prefixe", "addPrefixe");
return (Lists)digester.parse(pref);
解析しようとするxmlの一部:
<?xml version="1.0" encoding="utf-8" ?>
<prefixes>
<prefixe unvoweledform="" voweledform="" desc="" classe="C1">
</prefixe>
<prefixe unvoweledform="و" voweledform="وَ" desc="حرف العطف" classe="C1">
</prefixe>
<prefixe unvoweledform="ف" voweledform="فَ" desc="حرف العطف أو الاستئناف"
classe="C1">
</prefixe>
</prefixes>