2012-07-25 75 views
0

我已经使用链接的代码来解析xml,它的工作版本低于android 2.3,但我试图让它完成4.0.3它不会返回任何值。如何解决此问题。我没有得到在日志中我没有任何错误,但得到的分析值output.Here是link I used as code如何解析Android 4.0支持的xml?

@SuppressWarnings("unused") 
public final static Document XMLfromString(String xml) { 

    Document doc = null; 

    DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance(); 
    try { 

     DocumentBuilder db = dbf.newDocumentBuilder(); 

     InputSource is = new InputSource(); 
     is.setCharacterStream(new StringReader(xml)); 
     doc = db.parse(is); 

    } catch (ParserConfigurationException e) { 
     System.out.println("XML parse error: " + e.getMessage()); 
     return null; 
    } catch (SAXException e) { 
     System.out.println("Wrong XML file structure: " + e.getMessage()); 
     return null; 
    } catch (IOException e) { 
     System.out.println("I/O exeption: " + e.getMessage()); 
     return null; 
    } 

    return doc; 

} 

回答

1

使用Log.e(),而不是System.out.println()。您可能会遇到异常,但未显示。

try { 
    ... 
} catch (ParserConfigurationException e) { 
    Log.e(TAG, "XML parse error", e); 
    return null; 
} catch (SAXException e) { 
    Log.e(TAG, "Wrong XML file structure", e); 
    return null; 
} catch (IOException e) { 
    Log.e(TAG, "I/O exeption", e); 
    return null; 
} 

(其中TAG是一个字符串常量)

+0

都能跟得上它的一样,它没有做扣部分东西。 – Karthik 2012-07-25 07:29:43

+0

然后我不知道。 ['DocumentBuilder.parse()'](http://www.docjar.com/html/api/org/apache/xerces/jaxp/DocumentBuilderImpl.java.html)不应该返回'null'。 (假设Xerces是使用的实现,请检查使用'db.getClass()。getName()'。)的实现。 – 2012-07-25 07:48:35