발견 .I 간단한 XML 파일을 읽어 싶지
suns 파서
제안 사항?
발견 .I 간단한 XML 파일을 읽어 싶지
suns 파서
제안 사항?
XOM은 매우 빠른 표준 W3C DOM에 비해 입니다. 그것이 당신의 우선 순위라면 아무 것도 없습니다.
그러나, 여전히 DOM 형 API, 그리고 그래서 메모리 효율이 아니다. 그것은 SAX 나 STAX를 대체하지 않습니다.
어떻게 데이터에 액세스해야합니까? 그것은 하나의 패스 인 경우
는, 당신은 메모리에 트리를 구축 할 필요가 없습니다. SAX (빠름, 단순) 또는 StAX (빠름, 간단하지 않음)을 사용할 수 있습니다.
네비게이션하기 위해 트리를 메모리에 유지해야하는 경우 XOM 또는 JDOM이 좋습니다. DOM은 마지막 리조트 선택이며 확장 여부에 관계없이 레벨 1, 2 또는 3인지 여부에 관계없이
Java에 포함 된 파서 인 Xerces (Apache에서 업데이트 된 버전을 구해야하고 6.0에서도 Java로 번들 된 버전을 사용하지 않아야 함)에도 XNI이라는 스트리밍 기본 인터페이스가 있습니다.
자주 체인에서 다른 미리 만들어진 부품를 연결 SAX하거나 메모리에 자신의 모델을 구축 할 수 있기 때문에 StAX를가 잘 작동하려면
. 예를 들어 Saxon XSLT/XQuery 엔진은 DOM, SAX 또는 StAX와 함께 작동하지만 내부적으로는 TinyTree (기본값) 또는 DOM (선택 사항)을 빌드합니다. DataDirect XQuery은 SAX, StAX 또는 DOM에서도 작동하지만 은 실제로에서 StAX를 좋아합니다.당신이 question about the best XML library과 상단 (XOM) 답을 확인 할 수 있습니다; XOM의 장점에 대해 자세히 설명합니다. (어떤 것이 명확하지 않은 경우 코멘트를 남겨 두십시오. 피터 Štibraný는 XOM을 안팎으로 알고있는 것 같습니다.)
언급 한 바와 같이 XOM은 표준 javax.xml과 비교할 때 매우 빠르고 간단합니다. 예를 들어, this post에서 Java의 XML 파일을 읽는 가장 간단한 방법에 대한 질문을 참조하십시오. XOM을보기 좋고 (그리고 javax.xml은 다소 서투른) 멋진 예제를 수집했다. :-) 그래서 개인적으로
나는 (링크 된 게시물에서 볼 수 있듯이) 평가 한 후 XOM을 좋아 왔어요; 새로운 자바 프로젝트라면 XML 처리를 위해 XOM을 선택할 가능성이 큽니다. 내가 찾은 유일한 결점은 doesn't directly support streaming XML (dom4j와는 다른 곳)이지만 a simple workaround과 함께 잘 처리 될 수 있습니다.
나는 귀하의 질문에 http://stackoverflow.com/questions/967288/how-to-stream-xml-data-using-xom이 허용 대답을 가지고 참조하십시오. 스트리밍은 여전히 XOM의 단점입니까? – Sundeep
XOM API가 직접 지원하지 않기 때문에 그렇습니다. (그러나 해결 방법은 응답에서 볼 수 있듯이, 매우 간단합니다.) 어쨌든, 가서 XOM 당신을 위해 작동한다면, 시도! 내가 지금 사용하게 될 또 다른 Java XML 라이브러리는 [Simple Framework] (http://stackoverflow.com/a/17041986/56285)입니다. – Jonik
저는 Xoom을 사용하여 매우 빠른 대답으로 스트리밍을했습니다. 감사합니다. 난 딸꾹질없이 10000 노드로 XML을 스트리밍 할 수있었습니다. 위의 문장은'XOM은 실제로 스트리밍을 지원하지 않습니다 '라고 말했기 때문에 XOM은 기본적으로 제공하지 않지만 오도 된 것으로 나타났습니다. 나는 당신이 위의 대답에서 그것을 바꿔야한다고 생각합니다. Simple Framework Recommendation을 주셔서 감사합니다. 다음 프로젝트에서 사용해 보겠습니다. – Sundeep
당신이 말하는 SAX는 StAX보다 간단합니다. SAX는 더 간단한 API 일 수 있지만 StAX 기반 코드를 작성하는 것은 SAX에 대해 작성하는 것보다 훨씬 쉽습니다. – skaffman