2013-06-29 49 views
0

我正在學習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)

怎麼回事,請大家幫忙?

回答

2

首先,這不是編譯器錯誤,因爲它不會在編譯時發生。這是一個運行時錯誤。

錯誤的原因是xmlpull只是一個API - 它需要一個適當的XML拉解析器實現。

作爲他們的主要頁面表示,

How To Use It?

XMLPULL API is available freely. You can download XmlPull API as tarball or zip file. We are also providing access to the latest API version via anonymous CVS.

However to use XMLPULL you will need download an implementation of XmlPull API.

的,您可以下載實現中可以看到http://www.xmlpull.org/impls.shtml#xmlpull

+0

什麼是實現,我知道的唯一實現是接口實現? – Luther

+0

我會嘗試KXML2,可否將jar文件作爲參考庫? http://sourceforge.net/projects/kxml/files/kxml2/kxml2-min-2.3.0.jar – Luther

+0

是的,XmlPull定義了一個接口,像KXML2這樣的庫實現了該接口。它與編譯時接口有點不同 - 它實際上是運行時委託。是的,您應該下載KXML2 jar文件,並在運行時將其添加到類路徑中。 – GreyBeardedGeek