⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 saxparser1_old.java

📁 一个java的解析xml的例子
💻 JAVA
字号:
package xmlsax;import java.util.*;import java.io.*;import java.io.IOException;import org.xml.sax.*;import org.xml.sax.helpers.*;import org.apache.xerces.parsers.SAXParser;public class SaxParser1 extends DefaultHandler {  private java.util.Stack  tagStack=new java.util.Stack();  private String resultXML="";  private String indent="";  private static final java.lang.String NEWLINE=System.getProperty("line.separator");  private PrintWriter printFile=null;  String[] res =new String[10];  int len = 0,sel;  String sbname,tag;  public static void main(String[] argv) {    if (argv.length != 1) {      System.out.println("Usage: java SaxParser1 [URI]");      System.exit(0);    }    String uri = argv[0];    try {      XMLReader parser = XMLReaderFactory.createXMLReader("org.apache.xerces.parsers.SAXParser");      SaxParser1 SaxParser1Instance = new SaxParser1();      parser.setContentHandler(SaxParser1Instance);      parser.parse(uri);    }    catch(IOException ioe) {      ioe.printStackTrace();    }    catch(SAXException saxe) {      saxe.printStackTrace();    }  }  public String[] sTOc(String temp){    String[] res =new String[10];    StringTokenizer st = new StringTokenizer(temp);    len = 0;    while(st.hasMoreTokens())      res[len++] = st.nextToken() + " " + sbname;    return res;  }  private int selectSb(String[] sb) {    int i;    String s = "";    String ask = "\n确认请按回车,或选择其它";    BufferedReader in = new BufferedReader(new InputStreamReader(System.in));    System.out.println("请在下列" + sbname + "类型中选择一种\n");    for(i=0;i<len;i++)      System.out.println("        " + i +"."+ sb[i] + "\n");    i=0;    System.out.println("请输入0 -- " + (len-1) + "(直接回车,默认选择0):");    try {      s = in.readLine();      Integer tt=new java.lang.Integer(0);      while ( s.length() != 0) {      	i=tt.valueOf(s).intValue();        if(i<len && i>=0)            System.out.println("您选择的" + sbname + "是: " + sb[i] + "\n" + ask + sbname);        else            System.out.println("错误的选择!!");        s = in.readLine();      }    } catch (IOException e) {        e.printStackTrace();      }    return i;  }  private String locateValue(String tagName) {    return sbname;  }    /**@todo: Implement this characters method*/  public void characters(char[] ch, int start, int length) throws SAXException {    String value = new String(ch, start, length);    //throw new java.lang.UnsupportedOperationException("Method characters() not yet implemented.");  }    /**@todo: Implement this endDocument method*/  public void endDocument() throws SAXException {    try {      printFile=new PrintWriter(new FileWriter("resle.txt"));      printFile.print(resultXML);      printFile.close();    }    catch(IOException e) {      System.out.println("打开 resle.txt 时出错:"+e);    }    System.out.println(resultXML);  }    /**@todo: Implement this endElement method*/  public void endElement(String uri, String localName, String qName) throws SAXException {    if(localName.equals("trnDef")) {	}	else if(localName.equals("Name")) {		String tagName=(String)tagStack.pop();		indent=indent.substring(0,indent.length()-4);//                if (!(indent.length() == 8 && !res[sel].equals(tag)))                  resultXML=resultXML+indent+"</"+tagName+">"+NEWLINE;	}  }    /**@todo: Implement this startDocument method*/  public void startDocument() throws SAXException {  }    /**@todo: Implement this startElement method*/  public void startElement(String uri, String localName, String qName, Attributes attributes) throws SAXException {    if(localName.equals("trnDef")) {	}	else if(localName.equals("Name")) {		String tagName=attributes.getValue(0);                if (indent.length() == 4){  		  String tagValue=attributes.getValue(1);                  sbname = tagName;                  res=sTOc(tagValue);                  sel=selectSb(res);                }        	tagStack.push(tagName);                tag = tagName + " " + sbname;          System.out.println(res[sel]+"%"+tag+"%");//                if (!(indent.length() == 8 && !res[sel].equals(tag)))                    resultXML=resultXML+indent+"<"+tagName+">"+NEWLINE;		indent+="    ";	}	else if(localName.equals("Values")) {		String tagName=attributes.getValue(0);		String tagValue=locateValue(tagName);		if(!tagValue.equals("")) {        		resultXML=resultXML+indent+"<"+tagName+">"+tagValue+"</"+tagName+">"+NEWLINE;		}	}  }}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -