XML解析之SAX解析_city
来源:互联网 发布:tas软件下载 编辑:程序博客网 时间:2024/05/20 16:32
*******************************************文件放在assets中***和DOM解析不同的是:SAX解析需要写Bean一个类***********************************************************
***************************************************Bean*********************************************************************
public class Languages {private String id;private String name;private String ide;public String getId() {return id;}public void setId(String id) {this.id = id;}public String getName() {return name;}public void setName(String name) {this.name = name;}public String getIde() {return ide;}public void setIde(String ide) {this.ide = ide;}@Overridepublic String toString() {return "Languages [id=" + id + ", name=" + name + ", ide=" + ide + "]";}}
import java.io.IOException;import java.util.List;import javax.xml.parsers.ParserConfigurationException;import javax.xml.parsers.SAXParser;import javax.xml.parsers.SAXParserFactory;import org.xml.sax.SAXException;import android.app.Activity;import android.os.Bundle;import android.widget.TextView;public class MainActivity extends Activity {private TextView text;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);text = (TextView) findViewById(R.id.text);/**try {// 创建工厂类DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();// 创建DocumentBuilderDocumentBuilder builder = factory.newDocumentBuilder();//创建DocumentDocument document = builder.parse(getAssets().open("languages.xml"));//获得根元素Element element = document.getDocumentElement();//获取到列表String category = element.getAttribute("category");text.append(category+"\n");//获取到子节点NodeList list = element.getElementsByTagName("item");for (int i = 0; i < list.getLength(); i++) {Element element2 = (Element) list.item(i);String id = element2.getAttribute("id");text.append(id+"\n");String name = element2.getElementsByTagName("name").item(0).getTextContent();text.append(name+"\n");String ide = element2.getElementsByTagName("ide").item(0).getTextContent();text.append(ide+"\n");}} catch (SAXException e) {// TODO Auto-generated catch blocke.printStackTrace();} catch (IOException e) {// TODO Auto-generated catch blocke.printStackTrace();}catch (ParserConfigurationException e) {// TODO Auto-generated catch blocke.printStackTrace();} */try {SAXParserFactory factory = SAXParserFactory.newInstance();SAXParser parser = factory.newSAXParser();SAXHandler handler = new SAXHandler();parser.parse(getAssets().open("languages.xml"), handler);List<Languages> languageList = handler.getLanguageList();for (Languages language : languageList) {text.append(language.toString() + "\n");}} catch (ParserConfigurationException e) {// TODO Auto-generated catch blocke.printStackTrace();} catch (SAXException e) {// TODO Auto-generated catch blocke.printStackTrace();} catch (IOException e) {// TODO Auto-generated catch blocke.printStackTrace();}}}
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 SAXHandler extends DefaultHandler {private List<Languages> languageList;private Languages language;private String tagName;@Overridepublic void startDocument() throws SAXException {// TODO Auto-generated method stubsuper.startDocument();System.out.println("===================开始解析文档==================");languageList = new ArrayList<Languages>();}@Overridepublic void startElement(String uri, String localName, String qName,Attributes attributes) throws SAXException {// TODO Auto-generated method stubsuper.startElement(uri, localName, qName, attributes);tagName = qName;System.out.println("-------------开始解析" + qName + "元素----------");if (qName.equals("item")) {language = new Languages();language.setId(attributes.getValue("id"));}}@Overridepublic void characters(char[] ch, int start, int length)throws SAXException {// TODO Auto-generated method stubsuper.characters(ch, start, length);String value = new String(ch, start, length);if (tagName.equals("name") && !value.trim().equals("")) {language.setName(value);}else if(tagName.equals("ide") && !value.trim().equals("")){language.setIde(value);}}@Overridepublic void endElement(String uri, String localName, String qName)throws SAXException {// TODO Auto-generated method stubsuper.endElement(uri, localName, qName);System.out.println("-------------结束解析" + qName + "元素----------");if (qName.equals("item")) {languageList.add(language);}}@Overridepublic void endDocument() throws SAXException {// TODO Auto-generated method stubsuper.endDocument();System.out.println("===================结束解析文档==================");}public List<Languages> getLanguageList() {return languageList;}}
***********************************************************以上的XML解析都是很简单的,也容易忘记,希望可以帮助大家**********************************************************
1 0
- XML解析之SAX解析_city
- 解析xml之--SAX
- 解析xml之--SAX
- 解析xml之--SAX
- XML解析之SAX
- XML 解析之SAX
- XML解析之SAX
- 【xml之SAX解析】
- XML解析之SAX
- 解析XML之SAX
- xml之SAX解析
- xml之sax解析
- xml解析之sax
- XML解析之SAX
- xml解析之SAX
- XML之sax解析
- XML解析之SAX
- xml之SAX解析
- java网络编程: URL 和 RULConnection
- 虚拟机安装Ambari和Hadoop相关服务
- android ble 的各种坑
- Android学习系列(29)--App调试的几个命令实践
- .NET中Redis安装部署及使用方法简介
- XML解析之SAX解析_city
- label求文本字体高度
- 在写Mybatis时遇到的问题:No constructor found in 包名+类名
- OK6410的单个按键驱动程序(Linux),测试通过
- 【bzoj4553】【TJOI2016&HEOI2016】【序列】【cdq分治+树状数组】
- Unity3D —— protobuf网络框架
- 物质之学
- printf输出格式总结
- iOS 信鸽推送