【慕课笔记】3-2 应用SAX方式解析XML—使用SAX解析XML文件的节点属性

来源:互联网 发布:网络信息安全的概念 编辑:程序博客网 时间:2024/04/19 07:30
import javax.xml.stream.events.StartElement;import org.xml.sax.Attributes;import org.xml.sax.SAXException;import org.xml.sax.helpers.DefaultHandler;public class SAXParserHandler extends DefaultHandler {@Override//用来遍历xml的开始标签public void startElement(String uri, String localName, String qName,Attributes attributes) throws SAXException {//调用DefaultHandler类的startElement方法super.startElement(uri, localName, qName, attributes);//开始解析book元素的属性if(qName.equals("book")){////已知book元素下属性的名称,根据属性名称获取属性值//String value=attributes.getValue("id");//System.out.println("book的属性值是:"+value);//不知道book元素下属性的名称和个数,如何获取属性名和属性值int num=attributes.getLength();for(int i=0;i<num;i++){System.out.println("book元素的第"+(i+1)+"个属性名是"+attributes.getQName(i));System.out.println("----属性值是"+attributes.getValue(i));}}}


import java.io.IOException;import javax.xml.parsers.ParserConfigurationException;import javax.xml.parsers.SAXParser;import javax.xml.parsers.SAXParserFactory;import org.xml.sax.SAXException;public class TestSAX {public static void main(String[] args) {//获取一个SAXParserFactory的实例SAXParserFactory factory=SAXParserFactory.newInstance();try {//通过factory获取SAXParser的实例SAXParser parser=factory.newSAXParser();SAXParserHandler handler=new SAXParserHandler();parser.parse("haha.xml", handler);} catch (ParserConfigurationException e) {e.printStackTrace();} catch (SAXException e) {e.printStackTrace();}catch (IOException e) {// TODO Auto-generated catch blocke.printStackTrace();}}}


0 0