<?xml version="1.0" encoding="utf-8"?> <class> <stu home="菏泽" address = "北京" num="sp001" boss="sp002"> <name>杨过 </name> <sex>男</sex> <age>20 </age> </stu> <stu num="sp002" boss="sp001"> <name>李莫愁</name> <sex>女</sex> <age>38</age> </stu> </class>
import javax.xml.parsers.*; import org.xml.sax.Attributes; import org.xml.sax.SAXException; import org.xml.sax.helpers.*; public class saxxml1 { public static void main(String[] args) throws Exception{ //1.创建SaxParserFactory SAXParserFactory spf = SAXParserFactory.newInstance(); //2.创建SaxParser解析器 SAXParser saxParser = spf.newSAXParser(); //3.把xml文件和事件处理对象关联 saxParser.parse("src/classes.xml", new MyDefaultHandler2()); } } //定义事件处理类 class MyDefaultHandler1 extends DefaultHandler{ //发现文档开始 @Override public void startDocument() throws SAXException { // TODO Auto-generated method stub super.startDocument(); //System.out.println("发现startDocument()"); } //发现xml中的一个元素 @Override public void startElement(String uri, String localName, String qName, Attributes attributes) throws SAXException { // TODO Auto-generated method stub super.startElement(uri, localName, qName, attributes); //System.out.println("发现startElement()"+qName); } //发现xml文件中的文本 @Override public void characters(char[] ch, int start, int length) throws SAXException { // TODO Auto-generated method stub super.characters(ch, start, length); //System.out.println("发现characters()"); String con = new String(ch,start,length); if(!con.trim().equals("")){ System.out.println(con); } } //发现一个元素结束 @Override public void endElement(String uri, String localName, String qName) throws SAXException { // TODO Auto-generated method stub super.endElement(uri, localName, qName); //System.out.println("发现endElement()"); } //文档结束 @Override public void endDocument() throws SAXException { // TODO Auto-generated method stub super.endDocument(); //System.out.println("发现endDocument()"); } } //如何只显示姓名和年龄 class MyDefaultHandler2 extends DefaultHandler{ private boolean name = false; private boolean age = false; @Override public void startDocument() throws SAXException { // TODO Auto-generated method stub super.startDocument(); } @Override public void startElement(String uri, String localName, String qName, Attributes attributes) throws SAXException { // TODO Auto-generated method stub super.startElement(uri, localName, qName, attributes); if(qName.equals("name")){ name = true; }else if(qName.equals("age")){ age = true; } } @Override public void characters(char[] ch, int start, int length) throws SAXException { // TODO Auto-generated method stub super.characters(ch, start, length); String con = new String(ch,start,length); if((!con.trim().equals(""))&&(name||age)){ System.out.println(con); } name = false; age = false; } @Override public void endElement(String uri, String localName, String qName) throws SAXException { // TODO Auto-generated method stub super.endElement(uri, localName, qName); } @Override public void endDocument() throws SAXException { // TODO Auto-generated method stub super.endDocument(); } }
xml-dom crud操作
最新推荐文章于 2024-09-13 21:56:59 发布