saxprinter.java

来自「java解析xml的例子」· Java 代码 · 共 65 行

JAVA
65
字号
package myexample;

import java.io.File;
import java.io.IOException;

import javax.xml.parsers.*;
import org.xml.sax.*;
import org.xml.sax.helpers.DefaultHandler;

public class SAXPrinter extends DefaultHandler
{
    public void startDocument() throws SAXException
    {
        //输出XML声明。
        System.out.println("<?xml version='1.0' encoding='GBK'?>");
    }
    
    public void processingInstruction(String target,String data) throws SAXException
    {
        //输出文档中的处理指令。
        System.out.println("<?"+target+" "+data+"?>");
    }
    
    public void startElement(String uri,String localName,
                             String qName,Attributes attrs)
                      throws SAXException
    {
        //输出元素的开始标记及其属性。
        System.out.print("<"+qName);
        int len=attrs.getLength();
        for (int i = 0; i < len; i++)
        {
            System.out.print(" ");
            System.out.print(attrs.getQName(i));
            System.out.print("=\"");
            System.out.print(attrs.getValue(i));
            System.out.print("\"");
        }
        System.out.print(">");
    }
    public void characters(char[] ch,int start,int length) throws SAXException
    {
        //输出元素的字符数据内容。
        System.out.print(new String(ch,start,length));
    }
    public void endElement(String uri,String localName,String qName) throws SAXException
    {
        //输出元素的结束标记。
        System.out.print("</"+qName+">");
    }
    public static void main(String[] args)
    {
        SAXParserFactory spf = SAXParserFactory.newInstance();
        SAXParser sp=null; 
        try
        {
            sp = spf.newSAXParser(); 
            File file=new File("students.xml");
            sp.parse(file,new SAXPrinter());
        }
        catch(ParserConfigurationException e){e.printStackTrace();}
        catch(SAXException e){e.printStackTrace();}
        catch(IOException e){e.printStackTrace();}
    }
}

⌨️ 快捷键说明

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