2011-09-03 31 views
0

我正在使用SAX解析器進行XML解析。問題是如果我打印,一切都很好。但是,如果我要救什麼,我得到這個錯誤信息(用錯別字):使用SAX XML解析器的空指針異常

解析器代碼:

"XML Pasing Excpetion = java.lang.NullPointerException" 

我的代碼如下

try { 
     /** Handling XML */ 
     SAXParserFactory spf = SAXParserFactory.newInstance(); 
     SAXParser sp = spf.newSAXParser(); 
     XMLReader xr = sp.getXMLReader(); 

     /** Send URL to parse XML Tags */ 
     URL sourceUrl = new URL(
     "http://50.19.125.224/Demo/VeryGoodSex_and_the_City_S6E6.xml"); 

     /** Create handler to handle XML Tags (extends DefaultHandler) */ 
     MyXMLHandler myXMLHandler = new MyXMLHandler(); 
     xr.setContentHandler((ContentHandler) myXMLHandler); 
     xr.parse(new InputSource(sourceUrl.openStream())); 

    } catch (Exception e) { 
     System.out.println("XML Pasing Excpetion = " + e); 
    } 

對象保存XML解析信息:

public class ParserObject { 

String name=null; 
String description=null; 
String bitly=null; //single 
String productLink=null;//single 
String productPrice=null;//single 
Vector<String> price=null; 
} 

Handler類:

static ParserObject[] xmlDataObject = null; 

public void endElement(String uri, String localName, String qName) 
throws SAXException { 


    currentElement = false; 


    if (qName.equalsIgnoreCase("title")) 
    { 
     xmlDataObject[index].name=currentValue; 
    } 

    else if (qName.equalsIgnoreCase("artist")) 
    { 
     xmlDataObject[index].artist=currentValue; 
    } 

} 


public void startElement(String uri, String localName, String qName, 
Attributes attributes) throws SAXException { 


    currentElement = true; 

    if (qName.equalsIgnoreCase("allinfo")) 
    { 
     System.out.println("started"); 
    } 

    else if (qName.equalsIgnoreCase("tags")) 
    { 
     insideTag=1; 
    } 

} 

public void characters(char[] ch, int start, int length) 
throws SAXException { 

    if (currentElement) { 
     currentValue = new String(ch, start, length); 
     currentElement = false; 
    } 

} 
+1

你可以發佈堆棧跟蹤嗎?將'e.printStackTrace();'添加到您的catch塊,以便您可以確切地看到問題出在哪裏。 –

+0

感謝您的建議...解決了這個問題。 – user926293

回答

0

您的ParserObject數組,即xmlDataObject具有空值,這就是爲什麼它顯示空指針異常。這是我的觀點,它可能是錯誤的,但一旦檢查它。

+0

謝謝..我的壞! – user926293