2013-02-04 2 views
2

하스켈 용 XML 끌어 오기 구문 분석기 (Java StAX와 유사)가 있습니까?하스켈 XML 끌어 오기 구문 분석기

나는 파서를 받아들이는 순수한 함수를 사용하여 구상하고있다. 내 함수는 nextItem parser을 호출하고 결과에 패턴 일치 (StartElement, EndElement, Text, EntityRef 등)을 호출합니다. 그런 다음 내 함수는 하위 요소 등을 처리하기 위해 재귀 적으로 호출 할 수 있습니다. 그러면 하위 데이터 요소를 순회하면서 개인 데이터 구조를 구성합니다. XML "트리".

필자가 이해 하듯이 당겨 받기 구문 분석은 DOM의 내부 표현을 구성하는 것보다 더 나은 성능을 가져야 만합니다. 그런데 게으른 언어에서 이것이 사실인지는 모르겠지만 그것을 통과합니다.

답변

5

스트리밍 및 전체 문서 모듈을 모두 제공하는 xml-conduit을 사용할 수 있습니다. 스트리밍 분석 모듈 Text.XML.Stream.Parse은 여러 가지 도우미 결합 자도 제공합니다.

진정으로 게으른 데이터 소스를 사용하는 경우 끌어 오기 구문 분석기와 지연 목록 처리간에 성능상의 차이가 없을 수 있습니다. 그러나 XML 구문 분석에는 일반적으로 I/O가 관련됩니다. conduit은 이러한 종류의 파싱 문제에 대한 높은 수준의 접근 방식을 제공하도록 설계되었습니다.

+0

나는 그것을 검사 할 것이다 (책의 부록 F). – Ralph

관련 문제