2

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>
4

2 に答える 2