android SAX 解析XML文件

本文提供了一个使用SAX解析XML文件的示例代码,并详细展示了如何通过SAX解析器获取XML中的特定元素及属性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

我就直接上代码了

try{
String systemId="<?xml version=\"1.0\" encoding=\"utf-8\"?><student><name>张译成</name><age>22	</age><address>湖北省</address></student>";
SAXParserFactory factory=SAXParserFactory.newInstance();
SAXParser parser=factory.newSAXParser();
XMLReader reader=parser.getXMLReader();
reader.setContentHandler(new MyHandler(this));
byte []bb=systemId.getBytes();
ByteArrayInputStream bais=new ByteArrayInputStream(bb);
InputSource in=new InputSource(bais);
reader.parse(in);} catch (Exception e) {
e.printStackTrace();
}
在MyHanlder中的代码是

package com.zhycheng;
import org.xml.sax.Attributes;
import org.xml.sax.SAXException;
import org.xml.sax.helpers.DefaultHandler;
import android.app.Activity;
import android.widget.Toast;
public class MyHandler extends DefaultHandler{

	String tagname=null;
	Activity s=null;
	
	public MyHandler(Activity d)
	{
		this.s=d;
	}
	@Override
	public void characters(char[] ch, int start, int length)
			throws SAXException {
		// TODO Auto-generated method stub
		if("age".equals(tagname))
		{
			String s=new String(ch,start,length);
			Toast.makeText(this.s, s, Toast.LENGTH_SHORT).show();
		}
		super.characters(ch, start, length);
	}

	@Override
	public void endDocument() throws SAXException {
		// TODO Auto-generated method stub
		super.endDocument();
		tagname=null;
		Toast.makeText(s, "endDocument", Toast.LENGTH_SHORT).show();
		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);
	}

	@Override
	public void startDocument() throws SAXException {
		// TODO Auto-generated method stub
		super.startDocument();
		Toast.makeText(s, "startDocument", Toast.LENGTH_SHORT).show();
		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);
		tagname=localName;
		
		Toast.makeText(s, tagname, Toast.LENGTH_SHORT).show();
		System.out.println(tagname);
	}

}

这样就可以解析出来了

另外,如果要解析出标签的属性的话,可以使用下面的代码

for (int i = 0; i < attr.getLength(); i++){
System.out.println(attr.getLocalName(i) + "=" + attr.getValue(i));
}







评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值