Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/xml/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
未在android中检索解析的XML数据_Android_Xml_Parsing - Fatal编程技术网

未在android中检索解析的XML数据

未在android中检索解析的XML数据,android,xml,parsing,Android,Xml,Parsing,可能重复: 我以前也问过这个问题,但这次我做了一些研究,回来时我没有得到任何问题的答案 我有一个data.xml文件,其中包含我想提供给android应用程序的数据。我已经完成了android终端编码,我认为它是完美的。但是数据没有从文件中检索到我的应用程序中。我的文件结构是这样的: (a) data.xml (b) 主要 (c) 处理材料 (d) XMLDataCollected package com.xyz.xmlpar1; public class XMLDataCollected {

可能重复:

我以前也问过这个问题,但这次我做了一些研究,回来时我没有得到任何问题的答案

我有一个data.xml文件,其中包含我想提供给android应用程序的数据。我已经完成了android终端编码,我认为它是完美的。但是数据没有从文件中检索到我的应用程序中。我的文件结构是这样的:

(a) data.xml (b) 主要 (c) 处理材料 (d) XMLDataCollected

package com.xyz.xmlpar1;
public class XMLDataCollected {
  String datac=null;
  public void setData(String c){
    datac=c;
  }
  public String datatoString(){
    return datac;
  }
}
(a) data.xml

(c) 处理材料

package com.xyz.xmlpar1;
import org.xml.sax.Attributes;
import org.xml.sax.SAXException;
import org.xml.sax.helpers.DefaultHandler;

public class HandlingXMLStuff extends DefaultHandler {
  XMLDataCollected info=new XMLDataCollected();
  public String getInformation(){
    return info.datatoString();
  }
  @Override
  public void startElement(String uri, String localName, String qName,
    Attributes attributes) throws SAXException {
    // TODO Auto-generated method stub
    if(localName.equals("code")){
      String element=attributes.getValue("build");
      info.setData(element);
    }
  }
}
(d) XMLDataCollected

package com.xyz.xmlpar1;
public class XMLDataCollected {
  String datac=null;
  public void setData(String c){
    datac=c;
  }
  public String datatoString(){
    return datac;
  }
}
因此,当我输入first、second或third时,它应该检索数据。但事实并非如此。
我做错了什么?

看起来问题出在你的处理器上。您只是添加了一个
startElement
函数,但实际上您至少需要处理标记的开始和结束

另外,您的
localName.equals(“code”)
实际上应该查找标记的名称,即
localName.equals(“stuff”)

这里有一个完整的例子:这里有很多文章可以让您使用SAX获得一个完全工作的解析器


我肯定会建议尝试调试代码,看看在运行代码时实际发生了什么。您可以在IDE中使用调试模式,或者简单地在其中抛出一些
System.out.println()
Log.d()
语句来实现这一点。

事实上,我遵循的是tnb(buckys+mbb)教程……这些类与它们使用的代码完全相同……而且它们在示例中有google weather api xml……好的,因此,在
startElement
函数中的
if
语句中的某个地方放置一条print语句。很确定它永远不会被打印出来。如果没有,您就发现了问题。那么我应该在代码(实际上是在哪个java类文件中)中做些什么来获得所需的输出???是的,在使用print语句后没有输出。。。
package com.xyz.xmlpar1;
public class XMLDataCollected {
  String datac=null;
  public void setData(String c){
    datac=c;
  }
  public String datatoString(){
    return datac;
  }
}