XML解析之使用SAX分析操作XML文档
来源:互联网 发布:猿飞菖蒲 知乎 编辑:程序博客网 时间:2024/06/15 18:39
package forXML;import java.io.IOException;import javax.xml.parsers.ParserConfigurationException;import javax.xml.parsers.SAXParserFactory;import org.xml.sax.Attributes;import org.xml.sax.SAXException;import org.xml.sax.helpers.DefaultHandler;public class SAXParser { /** * 这是实验的第二发~~~哈哈哈 * * @author 焦含寒 */ public static void main(String[] args) throws ParserConfigurationException, SAXException, IOException { // 创建解析器 SAXParserFactory factory = SAXParserFactory.newInstance(); javax.xml.parsers.SAXParser parser = factory.newSAXParser(); // 关联xml与事件处理对象 parser.parse("src/forXML/books.xml", new MyDefaultHandler()); System.out.println("--------我还是一条可爱的分界线--------"); System.out.println("--------查找IDp0002--------"); parser.parse("src/forXML/books.xml", new MyDefaultHandler2()); }}// 遍历xml文件class MyDefaultHandler extends DefaultHandler { @Override public void startDocument() throws SAXException { // TODO Auto-generated method stub super.startDocument(); } @Override public void endDocument() throws SAXException { // TODO Auto-generated method stub super.endDocument(); } @Override public void startElement(String uri, String localName, String qName, Attributes attributes) throws SAXException { if (qName.equals("book")) { for (int i = 0; i < attributes.getLength(); i++) { System.out.println(attributes.getQName(i) + ":" + attributes.getValue(i)); } } else if (!qName.equals("books")) { System.out.print(qName + ":"); } } @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 characters(char[] ch, int start, int length) throws SAXException { // TODO Auto-generated method stub String s = new String(ch, start, length); if (!s.trim().equals("")) { System.out.println(s); } }}// 查找class MyDefaultHandler2 extends DefaultHandler { private boolean isId; @Override public void startDocument() throws SAXException { // TODO Auto-generated method stub super.startDocument(); } @Override public void endDocument() throws SAXException { // TODO Auto-generated method stub super.endDocument(); } @Override public void startElement(String uri, String localName, String qName, Attributes attributes) throws SAXException { if (qName.equals("book")) { for (int i = 0; i < attributes.getLength(); i++) { // System.out.println(attributes.getQName(i)+":"+attributes.getValue(i)); if (attributes.getValue(i).equals("p0002")) { this.isId = true; System.out.println(attributes.getQName(i) + ":" + attributes.getValue(i)); } } } else if (!qName.equals("books") && isId) { System.out.print(qName + ":"); } } @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 characters(char[] ch, int start, int length) throws SAXException { // TODO Auto-generated method stub String s = new String(ch, start, length); if (!s.trim().equals("") && isId) { System.out.println(s); } }}
阅读全文
0 0
- XML解析之使用SAX分析操作XML文档
- XML解析之使用DOM分析操作XML文档
- 使用SAX解析xml文档
- 使用SAX解析XML文档
- 使用SAX解析XML文档
- Java解析xml文档之SAX解析
- XML文档解析之SAX解析
- SAX解析XML文档
- SAX解析xml文档
- SAX解析XML文档
- SAX解析xml文档
- SAX解析xml文档
- SAX解析XML文档
- SAX解析XML文档
- SAX解析XML文档
- SAX解析XML文档
- SAX解析XML文档
- sax解析xml文档
- leetcode.136. Single Number
- sd卡的操作
- 欢迎使用CSDN-markdown编辑器
- JS实现二叉搜索树
- 51单片机之数码管显示原理
- XML解析之使用SAX分析操作XML文档
- 智能指针
- 测试
- 1009. 说反话 (20)
- time函数相关
- [区间DP入门 括号匹配]Brackets POJ
- J
- Android JNI(四)————JNI_在由C语言编写的JNI本地函数中如何控制Java端的代码
- 自定义listview实现类似通讯录的分组