자바 xml 분석 방식 집합 # 고급 프로그래머 필수 스 킬 #

5637 단어 자바직장xml
1。xml 배경
형식 이 좋 은 (웹 - from ed) xml 은 문서 형식 정의 (DTD) 가 필요 없 이 기본 적 인 xml 형식 규범 을 만족 시 키 면 형식 이 좋 은 xml 문서 라 고 볼 수 있 습 니 다.그러나 형식 기준 은 요소, 태그, 형식 이 합 법 적 이라는 것 만 설명 할 수 있 을 뿐 요소 가 의미 가 있 거나 규범 적 이라는 것 을 설명 할 수 없다.
유효한 xml 문 서 는 먼저 형식 이 좋 은 문서 이 고 해당 하 는 DTD 파일 의 제약 을 지 켜 야 합 니 다.
2。xml 분석
xml 문서 해석 의 대체적인 사용 과정 은 다음 과 같다.
xml 해상도 기 에서 지정 한 xml 문 서 를 분석 하고 조작 한 다음 인터페이스 공급 프로그램 을 제공 합 니 다.해석 기 가 다 르 면 제공 하 는 인터페이스 가 다 를 수 있 습 니 다.다행히도 현재 모든 xml 해상도 기 는 두 세트의 표준 api 에 지원 을 제 공 했 습 니 다. 이 두 세트의 표준 api 는 dom 과 sax 입 니 다.
dom: 즉 document object model, 문서 대상 모델 입 니 다. w3c 조직 이 추천 하 는 xml 처리 표준 인터페이스 입 니 다.dom 은 xml 문서 구조 트 리 에 대한 분석 입 니 다.
sax: 즉, simple api for xml 입 니 다. 이것 은 비공 식적 이 고 xml 커 뮤 니 티 의 사실상 기준 입 니 다.sax 는 이벤트 흐름 에 기반 한 분석 입 니 다.
dom 과 sax 는 일부 인터페이스 와 일부 인터페이스의 부족 한 실현 만 정의 합 니 다. 응용 프로그램 이 dom 또는 sax 를 이용 하여 xml 문 서 를 방문 하려 면 dom 또는 sax 인터페이스의 xml 해상도 기 를 진정 으로 실현 해 야 합 니 다.apache 의 xerces 는 매우 광범 위 한 해석 기 를 사용 하여 dom 과 sax 의 호출 인 터 페 이 스 를 실현 하고 다양한 언어의 실현 버 전 을 제공 합 니 다.
3。자바 언어 xml 문서 분석
먼저 jaxp 소개:
dom 또는 sax 가 제공 하 는 api 인 터 페 이 스 를 기반 으로 해당 하 는 해상도 기 를 사용 하여 클래스 를 실현 하면 xml 를 분석 처리 할 수 있 습 니 다.다음 과 같다.
   
   
   
   
  1. org.xml.sax.XMLReader sp=new org.apache.xerces.parser.SAXParser(); 
  2. FileInputStream fis=new FileInputStream("hello.xml"); 
  3. InputSource is=new InputSource(fis); 
  4. sp.setContentHandler(new MyConentHandler()); 
  5. sp.parse(is); 

자바 는 xml 해상도 기의 변화 가 코드 에 미 치 는 영향 을 차단 하기 위해 xml 파일 을 처리 하 는 표준 인터페이스 (실제 추상 적 인 공장 류) 를 제공 하여 자바 개발 자 들 이 표준 적 인 방식 으로 xml 를 프로 그래 밍 하도록 합 니 다. 즉, jaxp (자바 api for xml processing) 입 니 다.jaxp 는 xml 를 분석 하 는 새로운 방법 을 제공 하지 않 고 해상도 위 에 추상 적 인 층 을 밀봉 합 니 다.jdk 1.6 문서 에서 자바 x. xml, org. w3c. dom, org. xml. sax 가방 과 그 하위 가방 은 모두 jaxp 에 속 하 는 부분 을 볼 수 있 습 니 다.jaxp 는 인터페이스, 추상 류 와 일부 보조 류 로 구성 되 어 있 으 며, jaxp 규범 에 부합 되 는 해상도 기 는 그 중의 인터페이스 와 추상 류 를 실현 합 니 다. 개발 할 때 jaxp 의 api 프로 그래 밍 만 사용 하고, 바 텀 해상도 기 는 개발 자 에 게 투명 하 며, 마음대로 전환 할 수 있 습 니 다.
그러면 jaxp 가 나타 난 후 자바 응용 프로그램 이 xml 문 서 를 처리 하 는 과정 은 다음 과 같 습 니 다.
실제 어떤 해상도 기의 jaxp 를 사용 하여 시스템 속성, properties 파일 등 을 통 해 설정 할 수 있 습 니까?
다음은 몇 가지 자바 해석 xml 방법 을 구체 적 으로 소개 합 니 다.
3.1 DOM 방식 (jaxp)
javax. xml. parsers 패키지 에서 dom 의 추상 적 인 공장 류 DocumentBuilder Factory 를 정 의 했 습 니 다. 이 클래스 에서 정적 인 방법 인 new Instance () 가 있 습 니 다. 이 를 통 해 DocumentBuilder Factory 의 인 스 턴 스 를 만 듭 니 다.앞에서 jaxp 프로 그래 밍 을 언급 한 적 이 있 습 니 다. 해석 기 공급 자 는 이 추상 류 를 계승 하여 구체 적 인 해석 기 공장 을 만 든 다음 에 이 공장 류 인 스 턴 스 에서 해석 기 대상 을 만 든 다음 에 이 해석 기 대상 을 통 해 xml 문 서 를 처리 해 야 합 니 다.그러면 이 new Instance 방법 은 구체 적 인 해석 기 공장 클래스 인 스 턴 스 를 만 드 는 데 사 용 됩 니 다. 해석 기 공장 클래스 인 스 턴 스 를 만 드 는 방식 은 jdk 문 서 를 참고 할 수 있 습 니 다.
해상도 기 공장 클래스 인 스 턴 스 클래스 를 가 져 온 후에 new DocumentBuilder () 방법 으로 dom 해상도 기 인 스 턴 스 를 만 들 수 있 습 니 다.dom 해상도 기 인 스 턴 스 는 parser () 방법 으로 전체 xml 문답 의 Document 대상 을 가 져 올 수 있 습 니 다.
3. 2 SAX 방식 (jaxp)
sax 는 이벤트 기반 api 입 니 다. sax 는 xml 문 서 를 처리 할 때 이벤트 프로세서 에 다른 이 벤트 를 보 냅 니 다.sax 해상도 기 인터페이스 와 이벤트 프로세서 인 터 페 이 스 는 모두 org. xml. sax 패키지 에서 정의 합 니 다.XML Reader 는 sax 가 정의 하 는 해석 기 인터페이스 로 해석 기 공급 자가 이 핑 계 를 실현 합 니 다. 프로그램 이 해 야 할 일 은 이벤트 프로 세 서 를 만 드 는 것 입 니 다.XML Reader 의 setContentHandler () 방법 을 통 해 이벤트 프로세서 의 인 스 턴 스 를 설정 할 수 있 습 니 다.
dom 과 유사 합 니 다. jaxp 도 sax 해상도 기 에 추상 적 인 공장 류 SAX Parser Factory 류 를 제공 합 니 다. sax 해상도 기 공장 류 의 인 스 턴 스 는 dom 해상도 기 공장 류 의 인 스 턴 스 와 유사 합 니 다. 모두 new Instance () 방법 으로 만 듭 니 다. 다른 것 은 SAX Parser Factory 의 new Instance () 방법 으로 찾 은 공장 류 속성 은 javax. xml. parsers. SAX Parser Factory 입 니 다.마찬가지 로 sax 해상도 기 인 스 턴 스 를 가 져 오 는 방법 은 new SAXParser () 를 호출 할 수 있 습 니 다.
SAX Parser 와 XML Reader 를 사용 하면 xml 문 서 를 분석 할 수 있 습 니 다. 전 자 는 후자 에 대한 또 다른 포장 일 뿐 입 니 다.
3.3 JDOM
dom 은 거의 모든 xml 작업 임 무 를 완성 하 는 데 사용 되 는 동시에 언어 와 무관 하기 때문에 dom 의 api 가 크 고 복잡 합 니 다.자바 프로그래머 가 xml 문 서 를 더욱 편리 하 게 처리 하기 위해 두 외국 의 자바 기술 전문가 가 jdom 을 만 들 었 습 니 다.developerworks 의 한 마디 로 "오픈 소스 커 뮤 니 티 가 필요 하면 도 구 를 만 드 는 역사적 전통 을 이 어 가 며 자바 기술 전문가 제 이 슨 헌 터 와 브 렛 맥 라 플 린 이 JDOM 을 만 들 었 다" 고 밝 혔 다.따라서 jdom 은 자바 언어 로 xml 문 서 를 분석 하 는 오픈 소스 코드 프레임 워 크 라 고 볼 수 있 습 니 다.
jdom 도 대상 트 리 를 사용 하여 xml 문 서 를 표시 하고 밑 에 sax 해상도 기 를 사용 하여 xml 문 서 를 분석 하여 jdom 트 리 를 형성한다.
3.4 DOM4J
jdom 과 마찬가지 로 dom4j 도 자바 플랫폼 에 응용 되 어 xml 문 서 를 간단 하고 유연 하 게 처리 하 는 개발 소스 코드 라 이브 러 리 를 제공 합 니 다.재 미 있 는 것 은 dom4j 는 jdom 을 초기 에 개발 한 사람 이 분리 한 후에 독립 적 으로 개발 한 것 이다. (이익 이나 의견 이 맞지 않 는 다? 하하) jdom 에 비해 dom4j 는 더욱 유연성 을 제공 했다.인터넷 댓 글 을 통 해 알 수 있 듯 이 dom4j 는 성능, 기능, 용이 성에 서 jdom 보다 우수 하여 xml 파일 을 분석 하 는 첫 번 째 선택 이 될 수 있다.(나중에 분 리 된 사람들의 선택 이 옳 은 것 같 습 니 다!) 유행 하 는 hibenate, jaxm 는 모두 dom4j 로 xml 파일 을 처리 합 니 다.
dom4j 도 sax 해상도 기 를 사용 하여 xml 문 서 를 분석 하여 dom4j 트 리 를 형성한다.그것 도 큰 문서 에 사용 되 는 이벤트 기반 처리 모델 을 제공 했다.
따라서 jdom 과 dom4j 는 소스 커 뮤 니 티 에서 만들어 진 xml 의 구조 나 도 구 를 편리 하 게 분석 할 뿐 새로운 xml 분석 방식 을 만 들 지 않 았 음 을 알 수 있다.상기 네 가지 해석 xml 방법 을 비교 하면 손 흠 선생님 을 사용 하면 해석 기 를 자주 바 꾸 는 것 이 jaxp 방식 이 고 그렇지 않 으 면 dom4j 를 사용 하 는 것 을 추천 합 니 다.
4. StAX
전통 적 인 dom 과 sax 분석 방식 을 바탕 으로 자바 1.6 은 StAX (Streaming API for XML) 기반 이벤트 교체 기 API 를 추 가 했 습 니 다. 성능 이나 가용성 에 있어 서 다른 XML 처리 방법 이 미 치지 못 하 는 독특한 점 이 있 습 니 다.

좋은 웹페이지 즐겨찾기