SAX解析XML
来源:互联网 发布:军工软件 行业分析 编辑:程序博客网 时间:2024/06/03 13:06
public class MainActivity extends Activity implements OnClickListener { private List<Person> list; private Button jx; private ContentHandler handler = new DefaultHandler() { private String targetName; private Person p; @Override public void startDocument() throws SAXException { System.out.println("开始读取文件"); list = new ArrayList<Person>(); super.startDocument(); } @Override public void endDocument() throws SAXException { System.out.println("文件读取完毕"); super.endDocument(); } @Override public void startElement(String uri, String localName, String qName, Attributes attributes) throws SAXException { targetName = localName; System.out.println("++++++++" + targetName); if ("student".equals(targetName)) { p = new Person(); String id = attributes.getValue("id"); p.setId(Integer.parseInt(id)); } super.startElement(uri, localName, qName, attributes); } @Override public void characters(char[] ch, int start, int length) throws SAXException { if (targetName != null) { String text = new String(ch, start, length); System.out.println("text+++++++" + text); if ("name".equals(targetName)) { p.setName(text); } else if ("age".equals(targetName)) { p.setAge(Integer.parseInt(text)); } } super.characters(ch, start, length); } @Override public void endElement(String uri, String localName, String qName) throws SAXException { System.out.println("结束标签"+localName); if ("student".equals(localName)) { list.add(p); p = null; } targetName = null; super.endElement(uri, localName, qName); } }; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); jx = (Button) findViewById(R.id.jx); jx.setOnClickListener(this); } @Override public void onClick(View v) { SAXParserFactory spf = SAXParserFactory.newInstance(); try { SAXParser saxParser = spf.newSAXParser(); XMLReader reader = saxParser.getXMLReader(); // 设置监听 reader.setContentHandler(handler); reader.parse(new InputSource(getAssets().open("data1.xml"))); } catch (ParserConfigurationException e) { e.printStackTrace(); } catch (SAXException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } }}
javabean
public class Person { private int id; private String name; private int age; public Person() { super(); // TODO Auto-generated constructor stub } public Person(int id, String name, int age) { super(); this.id = id; this.name = name; this.age = age; } 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 int getAge() { return age; } public void setAge(int age) { this.age = age; } @Override public String toString() { return "Person [id=" + id + ", name=" + name + ", age=" + age + "]"; }}
0 0
- [XML] SAX解析XML
- 【XML】SAX解析XML
- XML解析(SAX解析)
- XML解析:SAX解析
- Study SAX《SAX解析XML》
- 使用SAX解析XML
- 解析xml之--SAX
- SAX解析XML
- SAX解析XML
- xml文件解析-SAX
- 解析xml之--SAX
- 解析xml之--SAX
- 使用SAX解析XML
- XML学习《SAX解析》
- SAX解析XML例子
- java sax 解析 xml
- 使用SAX解析XML
- sax解析xml实例
- 娃娃脸的困境 --娃娃脸也有错!!!
- 关于字符串和byte数组在java和ios之间兼容的解决办法
- url中传递中文参数时的转码与解码
- React-Native系列Android源码分析
- 第14章上机练习1
- SAX解析XML
- 判断当前网络状况 Reachability使用
- C语言修饰词之violate
- ActionScript 学习: 原来Flash这么用都可以 啊
- core文件如何查看和调试
- 高电位治疗仪对人体的危害 -- 社区免费理疗的疑惑?
- modelsim 和 matlab 联合调试 ,显示 正弦波
- Android WebView 不支持 H5 input type="file" 解决方法
- 十六进制的写法