解析xml(sap解析器)
发布时间:2020-12-16 06:03:11 所属栏目:百科 来源:网络整理
导读:package com.lesson30xml; import java.util.ArrayList; import java.util.List; import javax.xml.parsers.SAXParserFactory; import org.xml.sax.Attributes; import org.xml.sax.SAXException; import org.xml.sax.XMLReader; import org.xml.sax.helpers
package com.lesson30xml;
import java.util.ArrayList; import java.util.List; import javax.xml.parsers.SAXParserFactory; import org.xml.sax.Attributes; import org.xml.sax.SAXException; import org.xml.sax.XMLReader; import org.xml.sax.helpers.DefaultHandler; public class TestSap { try { // 调用 读取xml文件函数 readXml(); } catch (Exception e) { } public static void readXml() throws Exception { //实例化一个xml的sap解析器 XMLReader sap = SAXParserFactory.newInstance().newSAXParser() .getXMLReader(); //实例化一个操作 里面有开始 结束 内容 MyHandle handle = new MyHandle(); //取操作里面的内容 sap.setContentHandler(handle); sap.parse("abc.xml"); //输出操作的数据内容 System.out.println(handle.getDataList()); //操作里面包含开始 结束 内容 class MyHandle extends DefaultHandler { // new一个student的集合 List<student> studentList = new ArrayList<student>(); student stu; String readtag; //开始 public void startElement(String uri,String localName,String qName, Attributes atts) throws SAXException { //输出开始的名 System.out.println("begin" + localName + ":" + qName); readtag = qName; //如果读到开始的名字student时 就生成一个新的对象 if (qName.equals("student")) { stu = new student(); //结束 public void endElement(String uri,String qName) throws SAXException { System.out.println("end" + localName + ":" + qName); //如果 if ("student".equals(qName)) { studentList.add(stu); readtag = ""; //内容 public void characters(char[] ch,int start,int length) System.out.println(new String(ch,start,length)); //如果读到tel时 就 添加新的内容 if (readtag.equals("tel")) { stu.tel = new String(ch,length); //如果读到name时 内容给name if (readtag.equals("name")) { stu.name = new String(ch,229)">// 返回一个学生集合 public List getDataList() { return studentList; class student { String name; String sex; String tel; public String toString() { return name + ":" + tel; } (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |