如题,给出代码
主程序里 执行
xmlReader.setContentHandler(mp3ListContentHandler);
xmlReader.parse(new InputSource(new StringReader(xmlStr)));
调用XML解析的类:
----------------------------
public class Mp3ListContentHandler extends DefaultHandler{
private List<Mp3info> infos = null;
private Mp3info mp3info = null;
private String tagName = null;
public Mp3ListContentHandler(List<Mp3info> infos) {
super();
this.infos = infos;
} public List<Mp3info> getInfos() {
return infos;
} public void setInfos(List<Mp3info> infos) {
this.infos = infos;
} @Override
public void characters(char[] ch, int start, int length)
throws SAXException {
System.out.println("1X");
String temp = new String (ch, start,length);
if (tagName.equals("id")) {
mp3info.setId(temp);
}
else if(tagName.equals("mp3.name")){
mp3info.setMp3Name(temp);
}
else if (tagName.equals("mp3.size")) {
mp3info.setMp3Size(temp);
}
} @Override
public void startDocument() throws SAXException {
System.out.println("XXX");// TODO Auto-generated method stub
super.startDocument();
} @Override
public void endDocument() throws SAXException {
System.out.println("XXXxxxx");
// TODO Auto-generated method stub
super.endDocument();
} @Override
public void startElement(String uri, String localName, String qName,
Attributes attributes) throws SAXException {
tagName = localName;
System.out.println("XXxXX");
if(tagName.equals("resource")){
mp3info = new Mp3info();
System.out.println("XXxX");
}
// TODO Auto-generated method stub
} @Override
public void endElement(String uri, String localName, String qName)
throws SAXException {
// TODO Auto-generated method stub
if (qName.equals("resource")) {
infos.add(mp3info);
};
tagName= "";
}}-----------------------附上XML文件---------------<?xml version = "1.0" encoding = "utf-8">
<resources>
<resource>
<id>0001</id>
<mp3.name>想你的夜</mp3.name>
<mp3.size>10092</mp3.size>
</resource>
</resources>
主程序里 执行
xmlReader.setContentHandler(mp3ListContentHandler);
xmlReader.parse(new InputSource(new StringReader(xmlStr)));
调用XML解析的类:
----------------------------
public class Mp3ListContentHandler extends DefaultHandler{
private List<Mp3info> infos = null;
private Mp3info mp3info = null;
private String tagName = null;
public Mp3ListContentHandler(List<Mp3info> infos) {
super();
this.infos = infos;
} public List<Mp3info> getInfos() {
return infos;
} public void setInfos(List<Mp3info> infos) {
this.infos = infos;
} @Override
public void characters(char[] ch, int start, int length)
throws SAXException {
System.out.println("1X");
String temp = new String (ch, start,length);
if (tagName.equals("id")) {
mp3info.setId(temp);
}
else if(tagName.equals("mp3.name")){
mp3info.setMp3Name(temp);
}
else if (tagName.equals("mp3.size")) {
mp3info.setMp3Size(temp);
}
} @Override
public void startDocument() throws SAXException {
System.out.println("XXX");// TODO Auto-generated method stub
super.startDocument();
} @Override
public void endDocument() throws SAXException {
System.out.println("XXXxxxx");
// TODO Auto-generated method stub
super.endDocument();
} @Override
public void startElement(String uri, String localName, String qName,
Attributes attributes) throws SAXException {
tagName = localName;
System.out.println("XXxXX");
if(tagName.equals("resource")){
mp3info = new Mp3info();
System.out.println("XXxX");
}
// TODO Auto-generated method stub
} @Override
public void endElement(String uri, String localName, String qName)
throws SAXException {
// TODO Auto-generated method stub
if (qName.equals("resource")) {
infos.add(mp3info);
};
tagName= "";
}}-----------------------附上XML文件---------------<?xml version = "1.0" encoding = "utf-8">
<resources>
<resource>
<id>0001</id>
<mp3.name>想你的夜</mp3.name>
<mp3.size>10092</mp3.size>
</resource>
</resources>
解决方案 »
- 急, 求,微信、搜狐新闻等客户端离线消息是如何做的
- Radiobutton的text内容被button控件挡住了!怎么解决。。。
- Android2.3用linux命令,要安装什么软件?
- WebView的问题,高手来看看!!!!!!!!!!!!!
- 请教一下Android项目中一定要有一个Activity吗
- 如何调试Android system_process进程的代码?
- Android 如何让 statusBar 拉不下来?
- 请问Contacts.People已过时,可以用谁来替代
- 如何用paint实现两个控件的覆盖,遮挡先画的控件的一部分
- 安卓 MPAndroidChart 怎么设置柱形图柱子的大小
- android下使用Cursor如何获取专辑图片?
- 做一个dialog类型的acitivity,设置其在整个窗口的位置,怎么弄?
在startDocument方法里面有super.startDocument();
用SAX进行解析的时候,是顺序扫描的。遇到标签<>,就会执行startElement方法吧。