我必须使用 commons-digester.jar 在 android 中处理 xml 文件实际上这是一个开源程序,它使用 commons-digester.jar 在 Java 中进行 xml 处理,我需要更改它以支持 Android,但是会发生此错误:
Digester.getParser:java.lang.UnsupportedOperationException:此解析器不支持规范“未知”版本“0.0”
java.lang.NullPointerException 03-29 11:24:02.590: W/System.err(17018): at org.apache.commons.digester3.Digester.getXMLReader(Digester.java:790) 03-29 11:24:02.590 : W/System.err(17018): at org.apache.commons.digester3.Digester.parse(Digester.java:1588) 03-29 11:24:02.590: W/System.err(17018): at org. apache.commons.digester3.Digester.parse(Digester.java:1557) 03-29 11:24:02.590: W/System.err(17018): at 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.analysis.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): 在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>