dom 저장
  //출력하기
  //   변환기 생성
  TransformerFactory tf = TransformerFactory.newInstance();
  Transformer transformer = tf.newTransformer();

  // 출력 포맷 설정
  transformer.setOutputProperty(OutputKeys.ENCODING, "euc-kr");
  transformer.setOutputProperty(OutputKeys.DOCTYPE_SYSTEM, "bml.dtd");
  transformer.setOutputProperty(OutputKeys.INDENT, "yes");

  // DOMSource 객체 생성
  DOMSource source = new DOMSource(xmlDoc);

  // StreamResult 객체 생성
  StreamResult result =  new StreamResult(new File("./books_rev1.xml"));

  // 파일로 저장하기
  transformer.transform(source, result);

  System.out.println(""); 

- SAX 파서와 DOM 파서의 비교

구분          
DOM 파서   SAX 파서
파서 해석 결과  객체 트리   이벤트
데이터 접근 방식 네비게이션(스크롤) 접근  1회 순차적인 접근
메모리   XML 문서량에 비례하여 증가 XML 문서량과 상관없이 일정 메모리 사용
데이터  용량  적을 경우 유리   상관 없음
데이터 재사용  가능    불가능(재파싱해서 사용), 저장 메커니즘 필요
유리한 작업 형태 네비게이션 검색 작업  DB 입력, 순차적 검색 작업, XML 문서 유효성 검사 작업

- SAX 파서에 다양한 기능 추가하기

//SAX 파서 공장 생성
SAXParserFactory factory = SAXParserFactory.newInstance();
//① DTD Validation 검사를 하게함
factory.setValidating(true);  
//② NameSpace를 해석하도록 함
factory.setNamespaceAware(true);
//③ XML Schema Validation 검사를 하게함(NameSpace 해석 기능 필수)
//factory.setFeature("http://apache.org/xml/features/validation/schema", true);//
//SAX 파서 생성
SAXParser parser = factory.newSAXParser();
xml
트랙백 주소 : http://deuxism.freelog.net/trb.php?id=50287
Secret