使用SAX读取XML文件的练习--(将读取的XML文件原样输出)
发布时间:2020-12-16 02:11:13 所属栏目:百科 来源:网络整理
导读:实现的功能:用SAX读取contact.xml 文件并将其原样输出 XML文件:contact.xml ?xml version="1.0" encoding="utf-8"?contactListcontact id="001" name="eric"name张三/nameage20/agephone134222223333/phoneemailzhangsan@qq.com/emailqq432221111/qq/conta
实现的功能:用SAX读取contact.xml 文件并将其原样输出 XML文件:contact.xml <?xml version="1.0" encoding="utf-8"?> <contactList> <contact id="001" name="eric"> <name>张三</name> <age>20</age> <phone>134222223333</phone> <email>zhangsan@qq.com</email> <qq>432221111</qq> </contact> <contact id="002" name="jacky"> <name>eric</name> <age>20</age> <phone>134222225555</phone> <email>lisi@qq.com</email> <qq>432222222</qq> </contact> </contactList> 功能实现的功能类(处理程序):MyDefaultHandler2.java package SAX; import org.xml.sax.Attributes; import org.xml.sax.SAXException; import org.xml.sax.helpers.DefaultHandler; /* * SAX处理器程序 */ public class MyDefaultHandler2 extends DefaultHandler { private StringBuffer sb = new StringBuffer(); public String getContent() { return sb.toString(); } /* * 开始标签 */ @Override public void startElement(String uri,String localName,String qName,Attributes attributes) throws SAXException { sb.append("<"+qName); //判断是否有属性 if(attributes!=null) { for(int i=0 ; i<attributes.getLength();i++) { //得到属性的名称 String attrName = attributes.getQName(i); //得到属性值 String attrValue = attributes.getValue(i); sb.append(" "+attrName+"=""+attrValue+"""); } } sb.append(">"); } /* * 文本内容 */ @Override public void characters(char[] ch,int start,int length) throws SAXException { //得到当前读取的文本内容 String content = new String(ch,start,length); sb.append(content); } /* * 结束标签 */ @Override public void endElement(String uri,String qName) throws SAXException { sb.append("</"+qName+">"); } }
功能实现的主程序:Demo_sax1.java package SAX; import java.io.File; import javax.xml.parsers.SAXParser; import javax.xml.parsers.SAXParserFactory; /* * 读取contact.xml问价,完整的输出文档内容 */ public class Demo_sax1 { public static void main(String[] args) throws Exception { //1.创建一个SAXParser SAXParser parser = SAXParserFactory.newInstance().newSAXParser(); //2.读取XML文件 MyDefaultHandler2 handler = new MyDefaultHandler2(); parser.parse(new File("./src/contact.xml"),handler); String content = handler.getContent(); System.out.println(content); } } (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |