未在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;
}
}