zoukankan      html  css  js  c++  java
  • XML读取的例子

    今天需要用到用SAX对XML进行读取,在GOOGLE上看了很多例子,发现了一个写的比较好的。

    他的例子xml如下

    <?xml version="1.0"?>
    <company>
        <staff>
            <firstname>yong</firstname>
            <lastname>mook kim</lastname>
            <nickname>§</nickname>
            <salary>100000</salary>
        </staff>
    </company>

    读取的代码如下:

    package com.mkyong.test;
     
    import java.io.File;
    import java.io.FileInputStream;
    import java.io.InputStream;
    import java.io.InputStreamReader;
    import java.io.Reader;
    import javax.xml.parsers.SAXParser;
    import javax.xml.parsers.SAXParserFactory;
    import org.xml.sax.Attributes;
    import org.xml.sax.InputSource;
    import org.xml.sax.SAXException;
    import org.xml.sax.helpers.DefaultHandler;
     
    public class ReadXMLUTF8FileSAX 
    {
        public static void main( String[] args )
        {
            try {
     
                  SAXParserFactory factory = SAXParserFactory.newInstance();
                  SAXParser saxParser = factory.newSAXParser();
     
                  DefaultHandler handler = new DefaultHandler() {
     
                    boolean bfname = false;
                    boolean blname = false;
                    boolean bnname = false;
                    boolean bsalary = false;
     
                    public void startElement(String uri, String localName,
                        String qName, Attributes attributes)
                        throws SAXException {
     
                      System.out.println("Start Element :" + qName);
     
                      if (qName.equalsIgnoreCase("FIRSTNAME")) {
                          bfname = true;
                      }
     
                      if (qName.equalsIgnoreCase("LASTNAME")) {
                          blname = true;
                      }
     
                      if (qName.equalsIgnoreCase("NICKNAME")) {
                          bnname = true;
                      }
     
                      if (qName.equalsIgnoreCase("SALARY")) {
                          bsalary = true;
                      }
     
                    }
     
                    public void endElement(String uri, String localName,
                            String qName)
                            throws SAXException {
     
                          System.out.println("End Element :" + qName);
     
                    }
     
                    public void characters(char ch[], int start, int length)
                        throws SAXException {
     
                      System.out.println(new String(ch, start, length));
     
     
                      if (bfname) {
                        System.out.println("First Name : "
                            + new String(ch, start, length));
                        bfname = false;
                      }
     
                      if (blname) {
                          System.out.println("Last Name : "
                              + new String(ch, start, length));
                          blname = false;
                       }
     
                      if (bnname) {
                          System.out.println("Nick Name : "
                              + new String(ch, start, length));
                          bnname = false;
                       }
     
                      if (bsalary) {
                          System.out.println("Salary : "
                              + new String(ch, start, length));
                          bsalary = false;
                       }
     
                    }
     
                  };
     
                  File file = new File("c:\\file.xml");
                  InputStream inputStream= new FileInputStream(file);
                  Reader reader = new InputStreamReader(inputStream,"UTF-8");
     
                  InputSource is = new InputSource(reader);
                  is.setEncoding("UTF-8");
     
                  saxParser.parse(is, handler);
     
     
                } catch (Exception e) {
                  e.printStackTrace();
                }
     
        }
    }

    两个链接:

    http://www.mkyong.com/java/how-to-read-xml-file-in-java-sax-parser/

    http://www.mkyong.com/java/how-to-read-utf-8-xml-file-in-java-sax-parser/

  • 相关阅读:
    二叉树
    bfs
    E-Gold Coins
    D-We Love MOE Girls
    A
    哈希--查找出现过的数字
    二分查找
    KMP简单应用
    KMP算法(2)
    [JSOI2008]最大数
  • 原文地址:https://www.cnblogs.com/zhidian314/p/2630030.html
Copyright © 2011-2022 走看看