XML 文件解析 SAXParserFactory
来源:互联网 发布:灌砂法压实度试验算法 编辑:程序博客网 时间:2024/06/04 18:55
1、XML文件userinfo.xml 可以放到assets文件夹下或者包下面
<?xml version="1.0" encoding="UTF-8"?><admins> <admin id="1"> <name>于美光</name> <age>25</age> <address>NanJing</address> <phone>18855529592</phone> </admin> <admin id="2"> <name>于美光</name> <age>25</age> <address>NanJing</address> <phone>18855529592</phone> </admin></admins>
2、新建一个与XML文件对应的类User.java
public class User {private int id;private String name;private String address;private int age;private String phone;public int getId() {return id;}public void setId(int id) {this.id = id;}public String getName() {return name;}public void setName(String name) {this.name = name;}public String getAddress() {return address;}public void setAddress(String address) {this.address = address;}public int getAge() {return age;}public void setAge(int age) {this.age = age;}public String getPhone() {return phone;}public void setPhone(String phone) {this.phone = phone;}}
3.工具类XmlParser 继承DefaultHandler
public class XmlParser extends DefaultHandler{private String tagName = null;private User user = null;public User getUser() {return user;}public void setUser(User user) {this.user = user;}@Overridepublic void startDocument() throws SAXException {user = new User();}@Overridepublic void startElement(String uri, String localName, String qName,Attributes attributes) throws SAXException {tagName = localName;if ("admin".equals(tagName)) {user.setId(Integer.parseInt(attributes.getValue(0)));}super.startElement(uri, localName, qName, attributes);}@Overridepublic void characters(char[] ch, int start, int length)throws SAXException {if (tagName != null) {if (tagName.equals("name")) {String str = new String(ch,start,length);user.setName(str);}else if(tagName.equals("age")){String str = new String(ch,start,length);user.setAge(Integer.parseInt(str));}else if(tagName.equals("address")){String str = new String(ch,start,length);user.setAddress(str);}else if(tagName.equals("phone")){String str = new String(ch,start,length);user.setPhone(str);}}super.characters(ch, start, length);}@Overridepublic void endElement(String uri, String localName, String qName)throws SAXException {tagName = null;super.endElement(uri, localName, qName);}@Overridepublic void endDocument() throws SAXException {super.endDocument();}}
4.使用工具类进行解析
public class MainActivity extends Activity {private User user;private TextView txtUser;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);try {parse();} catch (IOException e) {e.printStackTrace();} catch (ParserConfigurationException e) {e.printStackTrace();} catch (SAXException e) {e.printStackTrace();}txtUser = (TextView)findViewById(R.id.txtUser);txtUser.setText(Html.fromHtml("<b>ID:</b>"+user.getId()+"<b>NAME:</b>"+"<b>AGE:</b>"+user.getAge()+"<b>Address:</b>"+user.getAddress()+"<b>PHONE:</b>PHPNE"+"=+"+user.getPhone()));}@Overridepublic boolean onCreateOptionsMenu(Menu menu) {getMenuInflater().inflate(R.menu.main, menu);return true;}private void parse() throws IOException, ParserConfigurationException, SAXException{SAXParserFactory spf = SAXParserFactory.newInstance();SAXParser sp = spf.newSAXParser();XmlParser parser = new XmlParser();//InputStream is = this.getResources().getAssets().open("userinfo.xml");//资源文件夹下面的InputStream is = this.getClass().getResourceAsStream("userinfo.xml");//和该类同一包下面sp.parse(is, parser);user = parser.getUser();}}
0 0
- XML 文件解析 SAXParserFactory
- java SAXParserFactory解析xml文件
- android如何使用DOM和SAXParserFactory来解析XML文件
- Tomcat启动报错,不能正常解析配置文件 Could not load META-INF/services/javax.xml.parsers.SAXParserFactory XML文件解析失败
- java.lang.ClassNotFoundException: javax.xml.parsers.SAXParserFactory
- javax.xml.parsers.SAXParserFactory.setXIncludeAware(Z)V错误解决方案
- 使用JAXP进行SAX解析(XMLReaderFactory、XMLReader 、SAXParserFactory与SAXParser)
- 使用JAXP进行SAX解析(XMLReaderFactory、XMLReader 、SAXParserFactory与SAXParser)
- 使用JAXP进行SAX解析(XMLReaderFactory、XMLReader 、SAXParserFactory与SAXParser)
- 使用JAXP进行SAX解析(XMLReaderFactory、XMLReader 、SAXParserFactory与SAXParser)
- 使用JAXP进行SAX解析(XMLReaderFactory、XMLReader 、SAXParserFactory与SAXParser)
- 使用JAXP进行SAX解析(XMLReaderFactory、XMLReader 、SAXParserFactory与SAXParser)
- 使用JAXP进行SAX解析(XMLReaderFactory、XMLReader 、SAXParserFactory与SAXParser)
- 使用JAXP进行SAX解析(XMLReaderFactory、XMLReader 、SAXParserFactory与SAXParser)
- 使用JAXP进行SAX解析(XMLReaderFactory、XMLReader 、SAXParserFactory与SAXParser)
- 使用JAXP进行SAX解析(XMLReaderFactory、XMLReader 、SAXParserFactory与SAXParser)
- 使用JAXP进行SAX解析(XMLReaderFactory、XMLReader 、SAXParserFactory与SAXParser)
- XML----SAX解析XML文件
- 30 Best Tools for Data Visualization
- python学习笔记(七) - 面向对象高级编程
- iOS CollectionView the completed guide(2th) chapter 04 Example Dimensions
- Mysql 列转行统计查询 、行转列统计查询
- 斯坦福大学机器学习公开课---Programming Exercise 1: Linear Regression
- XML 文件解析 SAXParserFactory
- Vim 复制粘贴探秘
- [数据结构] 图的邻接矩阵广度优先搜索
- CentOS下安装SecureCRT的sz/rz工具包
- 基于mt7620的newifi y1的Pandorabox新软件源备忘
- c语言-数据类型-基本数据类型
- Android RoboGuice 使用指南(1):概述
- max()函数的高级用法
- 源码推荐(12.29):10秒钟快速集成下拉刷新和上拉加载,多行可滑动action sheet