我正在學習xml解析,我想從xmlpull.org使用api。Java:xmlpull給我編譯錯誤(http://www.xmlpull.org/)
我從http://www.xmlpull.org/v1/download/下載了「xmlpull_1_0_5.jar」文件,並將其包含在我的參考庫中。
然後寫了下面的代碼(在Eclipse):
import java.io.IOException;
import java.io.StringReader;
import org.xmlpull.v1.XmlPullParser;
import org.xmlpull.v1.XmlPullParserException;
import org.xmlpull.v1.XmlPullParserFactory;
public class Collections {
public static void main (String args[])
throws XmlPullParserException, IOException
{
XmlPullParserFactory factory = XmlPullParserFactory.newInstance();
factory.setNamespaceAware(true);
XmlPullParser xpp = factory.newPullParser();
System.out.println("parser implementation class is "+xpp.getClass());
}
}
的問題是,當我編譯我得到這個錯誤:
在線程異常「主要」 org.xmlpull.v1.XmlPullParserException :無法加載任何工廠類(即使是小型或全部默認實現);嵌套的異常是: org.kxml2.io.XmlReader 在org.xmlpull.v1.XmlPullParserFactory.newInstance(XmlPullParserFactory.java:225) 在org.xmlpull.v1.XmlPullParserFactory.newInstance(XmlPullParserFactory.java:76) 在Collections.main(Collections.java:12)
怎麼回事,請大家幫忙?
什麼是實現,我知道的唯一實現是接口實現? – Luther
我會嘗試KXML2,可否將jar文件作爲參考庫? http://sourceforge.net/projects/kxml/files/kxml2/kxml2-min-2.3.0.jar – Luther
是的,XmlPull定義了一個接口,像KXML2這樣的庫實現了該接口。它與編譯時接口有點不同 - 它實際上是運行時委託。是的,您應該下載KXML2 jar文件,並在運行時將其添加到類路徑中。 – GreyBeardedGeek