在用SAX解析XML文件时 只执行了startDocument()方法
其余几个都执行不到 是哪儿出了问题 android SAX XML
其余几个都执行不到 是哪儿出了问题 android SAX XML
解决方案 »
- Android.mk中的LOCAL_LDLIBS
- android模拟器。xml文件
- Launcher中的WorkSapce,可以左右滑动切换屏幕页面的类 滑动到最后一界面如何继续
- 请教android 2.2里回车跟方向键中间那个键的区别
- 关于Android 模拟器 Location Control的问题
- 求助:Eclipse3.5安装ADT居然会出现以下错误!!!!!!!
- Qt5.02编译QextSerialPort出问题
- 控件大小设置和超出contentview的方法
- 换了部4.x的手机调试,怎么就不支持System.out.println()了?
- 关于安卓业务流程的问题
- 初学Fragments+ActionBar两个基础问题请教下
- 关于回调函数的理解
}
package com.example.activity18;import java.io.IOException;
import java.io.StringReader;import javax.xml.parsers.ParserConfigurationException;
import javax.xml.parsers.SAXParserFactory;import org.xml.sax.InputSource;
import org.xml.sax.SAXException;
import org.xml.sax.XMLReader;import xmlParse.XmlInfo;
import xmlParse.XmlParse;import com.example.download.DownLoad;import android.os.Bundle;
import android.app.Activity;
import android.app.ListActivity;
import android.view.Menu;
import android.view.MenuItem;public class MainActivity extends ListActivity { private XmlParse xmlparse=new XmlParse();
private static final String strurl="http://10.0.2.2/mldn/a3.xml";
@Override
public boolean onOptionsItemSelected(MenuItem item) {
// TODO Auto-generated method stub
if(item.getItemId()==1)
{
//System.out.println("itemid----->"+item.getItemId());
downloadXML(strurl);
}
else if(item.getItemId()==2)
{
System.out.println("itemid----->"+item.getItemId());
}
return super.onOptionsItemSelected(item);
} @Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
} @Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.main, menu);
menu.add(0, 1, 1, R.string.update);
menu.add(0, 2, 2, R.string.about);
return true;
}
public String downloadXML(String strxml)
{
DownLoad download=new DownLoad();
String s="";
try {
s=download.downloadFile(strxml);
System.out.println("1111111111111111");
SAXParser(s);
System.out.println("22222222222");
showList();
System.out.println("333333333333");
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return s;
}
public String SAXParser(String str)
{
SAXParserFactory factory=SAXParserFactory.newInstance();
try {
XMLReader reader=factory.newSAXParser().getXMLReader();
reader.setContentHandler(xmlparse);
try {
reader.parse(new InputSource(new StringReader(str)));
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
} catch (SAXException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (ParserConfigurationException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return null;
}
public void showList()
{
System.out.println("4444444444444");
System.out.println(xmlparse.list.size());
for (XmlInfo info : xmlparse.list) {
System.out.println(info);
}
}}这是DownLoad中的内容
package com.example.download;import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.net.HttpURLConnection;
import java.net.MalformedURLException;
import java.net.URL;public class DownLoad {
public String downloadFile(String str) throws IOException
{
URL url=new URL(str);
HttpURLConnection urlConn=(HttpURLConnection)url.openConnection();
BufferedReader br=new BufferedReader(new InputStreamReader(urlConn.getInputStream()));
String str2=null;
String str1=null;
while((str1=br.readLine())!=null)
{
//System.out.println(str1);
str2+=str1;
}
//System.out.println("s2="+str2);
br.close();
return str2;
}}这是XmlParse中的内容
package xmlParse;
import java.util.ArrayList;
import java.util.List;import org.xml.sax.Attributes;
import org.xml.sax.SAXException;
import org.xml.sax.helpers.DefaultHandler;public class XmlParse extends DefaultHandler { String tagName=null;
public static List<XmlInfo> list=new ArrayList<XmlInfo>();
XmlInfo info;
@Override
public void characters(char[] ch, int start, int length)
throws SAXException {
// TODO Auto-generated method stub
super.characters(ch, start, length);
System.out.println("characters");
String str=new String(ch,start,length);
if(tagName.equals("mp3_name"))
{
info.setMp3_name(str);
}
else if(tagName.equals("mp3_size"))
{
info.setMp3_size(str);
}
else if(tagName.equals("lrc_name"))
{
info.setLrc_name(str);
}
else if(tagName.equals("lrc_size"))
{
info.setLrc_size(str);
}
else if(tagName.equals("id"))
{
info.setId(str);
}
} @Override
public void endDocument() throws SAXException {
// TODO Auto-generated method stub
super.endDocument();
System.out.println("endDocument");
} @Override
public void endElement(String uri, String localName, String qName)
throws SAXException {
// TODO Auto-generated method stub
super.endElement(uri, localName, qName);
System.out.println("endElement");
if(qName.equals("resource"))
{
info.toString();
list.add(info);
}
tagName="";
} @Override
public void startDocument() throws SAXException {
// TODO Auto-generated method stub
//super.startDocument();
System.out.println("startDocument");
} @Override
public void startElement(String uri, String localName, String qName,
Attributes attributes) throws SAXException {
// TODO Auto-generated method stub
super.startElement(uri, localName, qName, attributes);
System.out.println("startElement");
tagName=localName;
if(tagName.equals("resource"))
{
info=new XmlInfo();
}
} }这是XmlInfo中的内容
package xmlParse;public class XmlInfo {
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
public String getMp3_name() {
return mp3_name;
}
public void setMp3_name(String mp3_name) {
this.mp3_name = mp3_name;
}
public String getMp3_size() {
return mp3_size;
}
public void setMp3_size(String mp3_size) {
this.mp3_size = mp3_size;
}
public String getLrc_name() {
return lrc_name;
}
public void setLrc_name(String lrc_name) {
this.lrc_name = lrc_name;
}
public String getLrc_size() {
return lrc_size;
}
public void setLrc_size(String lrc_size) {
this.lrc_size = lrc_size;
}
@Override
public String toString() {
// TODO Auto-generated method stub
System.out.println(id);
return null;
}
private String id;
private String mp3_name;
private String mp3_size;
private String lrc_name;
private String lrc_size;
}
这个是a3.xml中的内容:
<?xml version="1.0" encoding="GB2312" standalone="no"?>
<resources>
<resource>
<id>1001</id>
<mp3_name>zhangjie_mp3</mp3_name>
<mp3_size>11092822</mp3_size>
<lrc_name>zhangjie_lrc</lrc_name>
<lrc_size>1205</lrc_size>
</resource>
</resources>