[재무재표] 위메이드 사업보고서(2020.12)

읽으면 진짜 재무제표 보이는 책   위메이드 사업보고서(2020.12) [재무상태표] 2020년 12월 31일 현재 (단위: 십억원) 자산 220 부채 22 자본 198

[JAVA] SAX를 이용한 XML 파싱

SAX 파서는 XML 문서를 순차적으로 읽어, 시작 엘리먼트나 속성, 종료 엘리먼트, 텍스트 데이터 등을 만나면 이벤트가 발생하여 각 구성 요소를 처리하는 메소드가 호출된다.
중요한 이벤트로 문서의 시작과 끝, 엘리먼트의 시작과 끝, 텍스트 데이터가 있다.

아래는 SAX 파서를 이용한 샘플 프로그램이다.

Sample.xml
--------------------------------------------------------------------------------
<?xml version="1.0" encoding="UTF-8"?>
<Sample>
  <content id="1">content1</content>
  <content id="2">content2</content>
</Sample>

SaxSampleParse.java
--------------------------------------------------------------------------------
package im.soli.lab;

import java.io.File;

import javax.xml.parsers.SAXParser;
import javax.xml.parsers.SAXParserFactory;

import org.xml.sax.Attributes;
import org.xml.sax.SAXException;
import org.xml.sax.helpers.DefaultHandler;

public class SAXSampleParser extends DefaultHandler {

  public SAXSampleParser() { }

  // 문서의 시작
  public void startDocument() throws SAXException {
    super.startDocument();

    System.out.println("Start Document");
  }

  // 엘리먼트 시작
  public void startElement(String uri, String localName, String qName, Attributes attributes) throws SAXException {
    System.out.println("Start Element: " + qName);

    // 엘리먼트 속성
    for (int i = 0; i < attributes.getLength(); i++) {
      System.out.println("Attribute: " + attributes.getQName(i) + "=" + attributes.getValue(i));
    }
  }

  // 엘리먼트 끝
  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("Character: " + new String(ch, start, length));
  }

  // 문서의 끝
  public void endDocument() throws SAXException {
    super.endDocument();

    System.out.println("End Document");
  }

  public static void main(String[] args) {
    try {
      SAXParser parser = SAXParserFactory.newInstance().newSAXParser();

      File xmlFile = new File("sample.xml");
      parser.parse(xmlFile, new SAXSampleParser());

    } catch (Exception e) {
      e.printStackTrace();
    }
  }
}


댓글

이 블로그의 인기 게시물

[C#][System.IO.Directory.GetFiles] 지정된 폴더의 파일목록 가져오기

[C#] File to Byte Array, Byte Array to File

[WPF][WebBrowser] Allow Blocked Content Setting