快速业务通道

[JAVA100例]069、使用SAX解析XML - 编程入门网

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-06-21

[JAVA100例]069、使用SAX解析XML

时间:2011-01-09

ReadXmlDemo.java import java.io.*; import javax.xml.parsers.*; import org.xml.sax.*; import org.xml.sax.helpers.*; public class ReadXmlDemo extends DefaultHandler { public static void main(String[] arguments) {     if (arguments.length > 0){    ReadXmlDemo read = new ReadXmlDemo(arguments[0]); } else {    System.out.println("Usage: java ReadXmlDemo filename"); }   } ReadXmlDemo(String xmlFile) {     File input = new File(xmlFile); SAXParserFactory factory = SAXParserFactory.newInstance(); factory.setValidating(true); try {    SAXParser sax = factory.newSAXParser();    sax.parse(input, new XmlHandler() ); } catch (ParserConfigurationException pce) {    System.out.println("Could not create that parser.");    System.out.println(pce.getMessage()); } catch (SAXException saxe) {    System.out.println("Problem with the SAX parser.");    System.out.println(saxe.getMessage()); } catch (IOException ioe) {    System.out.println("Error reading file.");    System.out.println(ioe.getMessage()); }   } } class XmlHandler extends DefaultHandler {   static int READING_NAME = 1;   static int READING_SEX = 2;   static int READING_BIRTH = 3;   static int READING_NOTHING = 0;   int currentActivity = READING_NOTHING;   ReadXml xml = new ReadXml(); XmlHandler() {     super();   } public void startElement(String uri, String localName, String qName, Attributes attributes) {       if (qName.equals("title"))       currentActivity = READING_NAME; else if (qName.equals("file"))    currentActivity = READING_SEX; //else if (qName.equals("Birth"))    //currentActivity = READING_BIRTH;   } public void characters(char[] ch, int start, int length) {     String value = new String(ch, start, length); if (currentActivity == READING_NAME)    xml.name = value; if (currentActivity == READING_SEX)    xml.sex = value; //if (currentActivity == READING_BIRTH)    //xml.birth = value;   } public void endElement(String uri, String localName, String qName) {     if (qName.equals("page")) {    System.out.println("\nName: "+xml.name);    System.out.println("Sex: "+xml.sex);    //System.out.println("Birth: "+xml.birth);    xml = new ReadXml(); }   } } class ReadXml {   String name;   String sex;   String birth; } SaxParsePage.java import javax.xml.parsers.*; import org.xml.sax.*; import org.xml.sax.helpers.*; import java.io.*; /** * <p>Title: 使用SAX解析XML</p> * <p>Description: 使用SAX接口解析book.xml文件</p> * <p>Copyright: Copyright (c) 2003</p> * <p>Filename: SaxParsePage.java</p> * @version 1.0 */ public class SaxParsePage extends DefaultHandler { /** *<br>方法说明:主方法,声明解析工厂和加载XML文件 *<br>输入参数: *<br>返回类型: */  public static void main

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号