使用Sax2方式解析xml
发布时间:2020-12-15 23:36:56 所属栏目:百科 来源:网络整理
导读:strings.xml ?xml version="1.0" encoding="utf-8"?resources string name="app_name"Sax2/string string name="action_settings"Settings/string string name="hello_world"Hello world!/string testtest/test/resources 将strings.xml放到android工程目录a
strings.xml <?xml version="1.0" encoding="utf-8"?> <resources> <string name="app_name">Sax2</string> <string name="action_settings">Settings</string> <string name="hello_world">Hello world!</string> <test>test</test> </resources> 将strings.xml放到android工程目录assets下 MainActivity.java package com.example.sax2; import java.io.IOException; import java.io.InputStream; import javax.xml.parsers.ParserConfigurationException; import javax.xml.parsers.SAXParser; import javax.xml.parsers.SAXParserFactory; import org.xml.sax.Attributes; import org.xml.sax.SAXException; import org.xml.sax.helpers.DefaultHandler; import android.app.Activity; import android.os.Bundle; import android.util.Log; import android.view.View; public class MainActivity extends Activity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); View view = new View(getApplicationContext()); setContentView(view); InputStream inputStream = null; try { inputStream = getAssets().open("strings.xml"); SAXParserFactory factory = SAXParserFactory.newInstance(); SAXParser parser = factory.newSAXParser(); parser.parse(inputStream,new XmlHandler()); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); }catch (ParserConfigurationException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (SAXException e) { // TODO Auto-generated catch block e.printStackTrace(); } } private class XmlHandler extends DefaultHandler { private static final String TAG = "XmlHandler"; @Override public void startDocument() throws SAXException { Log.d(TAG,"startDocument"); super.startDocument(); } @Override public void endDocument() throws SAXException { Log.d(TAG,"endDocument"); super.endDocument(); } @Override public void startPrefixMapping(String prefix,String uri) throws SAXException { Log.d(TAG,"startPrefixMapping " + " prefix:" + prefix + " uri:" + uri); super.startPrefixMapping(prefix,uri); } @Override public void endPrefixMapping(String prefix) throws SAXException { Log.d(TAG,"endPrefixMapping " + " prefix:" + prefix); super.endPrefixMapping(prefix); } @Override public void startElement(String uri,String localName,String qName,Attributes attributes) throws SAXException { Log.d(TAG,"startElement " + " uri:" + uri + " localName:" + localName + " qName:" + qName + " attributes:" + attributes); if (qName.equals("string")) { String name = attributes.getValue("name"); Log.d(TAG,"startElement " + " name:" + name); } super.startElement(uri,localName,qName,attributes); } @Override public void endElement(String uri,String qName) throws SAXException { Log.d(TAG,"endElement " + " uri:" + uri + " localName:" + localName + " qName:" + qName); super.endElement(uri,qName); } @Override public void characters(char[] ch,int start,int length) throws SAXException { String string = new String(ch,start,length); Log.d(TAG,"characters " + " ch:" + string + " start:" + start + " length:" + length); super.characters(ch,length); } } }打印日志: (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |