2011-09-03 65 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