documentbuilderfactory不工作在android 3.0

问题描述:

这是我用于android 2.3的代码。它用来正常工作。 不过不要没有,为什么它似乎并没有在Android 3.0的documentbuilderfactory不工作在android 3.0

DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance(); 
     try 
     { 

      try 
      { 
      while(this.xml.available()>0) 
      Log.e("content", ""+this.xml.read()); 
      } 
      catch (Exception e) { 
       // TODO: handle exception 
       Log.e("error", "while reading the file"); 
      } 
      this.xml.reset(); 

      DocumentBuilder builder = factory.newDocumentBuilder(); 
      Document dom = builder.parse(this.xml); 
      Element root = dom.getDocumentElement(); 
      Log.d(TAG, "have root?"+dom.getLocalName());; 
      Log.d(TAG, "have root?"+dom.getInputEncoding());; 
      Log.d(TAG, "have root?"+dom.getNodeValue());; 
} 
     catch (Exception e) 
     { 
      Log.e(TAG, e.getMessage(), e); 
     } 
     //Log.d(TAG, "Exit: parse"); 
     return stores; 
    } 

工作的肠子同时显示在数字文件内容。 但是当我得到dom。*我得到null为什么是这样?

任何暗示?

+0

root.getTagName()返回正确的头标签..但是当我尝试节点列表项= root.getElementsByTagName( “somenode”);我总是得到零 – 2011-06-07 10:08:55

现在看起来元素被访问的方式有点不同。

对于其他人来说,看看写作的新方法。

感谢

其实有在DOM的Android版本的一些bug的Android 3.0 3.0 这些错误进行校正,有可能是在使用DOM

由你做的旧的实现需要做一些改变之前,请参考此链接

http://code.google.com/p/android/issues/detail?id=2735#c11

干杯 人士Himanshu

请勿使用Element root = dom.getDocumentElement();

DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance(); 
DocumentBuilder builder = factory.newDocumentBuilder(); 
Document dom = builder.parse(stream); 

NodeList nodeResponse = dom.getElementsByTagName("rootelement");