DOM 메서드, CSS 셀렉터, XPath를 사용해 실제 웹의 HTML을 파싱하고 스크래핑하며 편집·정제하는 Java 라이브러리입니다.
beevik/etree
XPath와 유사한 경로 쿼리를 지원하며, XML을 요소 트리로 파싱·조회·수정·작성하는 경량 순수 Go 패키지입니다.
- 스타
- 1,672
- 포크
- 191
- 열린 이슈
- 4
- 마지막 커밋
- 지난달
어떤 프로젝트인가요?
etree는 XML 문서를 요소 트리로 표현하므로 Go에서 문서를 손쉽게 탐색하고 검색하고 수정할 수 있습니다. 문서를 처음부터 만들거나 파일, 바이트 슬라이스, 문자열 또는 io.Reader에서 읽어 들일 수 있으며, 공백이나 탭을 사용해 선택적으로 들여쓰기한 뒤 다시 출력할 수 있습니다.
이 패키지는 하위 요소와 속성을 선택하는 간단한 메서드와 XPath와 유사한 경량 경로 쿼리를 제공합니다. 경로를 미리 컴파일해 반복 검색에 사용할 수 있으며, 이중 슬래시를 이용한 재귀 검색과 속성 값 또는 네임스페이스 접두사가 붙은 값의 일치 여부를 확인하는 조건자도 지원합니다. 설계는 Python의 ElementTree 모듈에서 영감을 받았습니다.
etree는 표준 라이브러리에만 의존하는 순수 Go 구현이며, 표준 encoding/xml 패키지를 기반으로 합니다. Go 1.23 이상이 필요합니다.
핵심 기능
- 01XML 문서를 처음부터 만들거나 파일, 문자열, 바이트 슬라이스, io.Reader에서 파싱합니다.
- 02간단한 선택자나 XPath와 유사한 경로 쿼리로 검색하며, 재귀 검색과 조건자 기반 검색도 지원합니다.
- 03미리 컴파일한 경로를 사용해 반복 쿼리를 효율적으로 수행할 수 있습니다.
- 04직렬화된 출력에 공백이나 탭을 사용해 자동으로 들여쓰기를 적용합니다.
- 05순수 Go로 구현되어 있으며 표준 라이브러리 외에는 의존성이 없습니다.
활용 사례
- Go 서비스에서 XML 설정 파일을 읽고 수정합니다.
- Go 코드로 피드나 구조화된 내보내기 파일 등의 XML 문서를 생성합니다.
- 경로 쿼리를 사용해 대용량 XML 페이로드에서 특정 값을 추출합니다.
빠른 시작
- 1
go get으로 etree 패키지를 설치합니다
go get github.com/beevik/etree - 2
README의 생성 예시와 같이 Go 프로그램에서 새 XML 문서를 만들고 stdout에 출력합니다
토픽
자주 묻는 질문
- etree은(는) 무엇인가요?
- XPath와 유사한 경로 쿼리를 지원하며, XML을 요소 트리로 파싱·조회·수정·작성하는 경량 순수 Go 패키지입니다. etree는 XML 문서를 요소 트리로 표현하므로 Go에서 문서를 손쉽게 탐색하고 검색하고 수정할 수 있습니다. 문서를 처음부터 만들거나 파일, 바이트 슬라이스, 문자열 또는 io.Reader에서 읽어 들일 수 있으며, 공백이나 탭을 사용해 선택적으로 들여쓰기한 뒤 다시 출력할 수 있습니다.
- etree은(는) 무료로 사용할 수 있나요? 라이선스는 무엇인가요?
- etree은(는) BSD-2-Clause 라이선스의 오픈소스입니다. 상업용 제품에 사용하기 전에 라이선스 조건을 확인하세요.
- etree은(는) 아직 유지보수되고 있나요?
- 6개월 이내 업데이트. etree의 마지막 커밋은 2026년 9월 23일입니다.
- etree은(는) 어디에 사용할 수 있나요?
- Go 서비스에서 XML 설정 파일을 읽고 수정합니다. Go 코드로 피드나 구조화된 내보내기 파일 등의 XML 문서를 생성합니다. 경로 쿼리를 사용해 대용량 XML 페이로드에서 특정 값을 추출합니다.
- etree는 어떻게 설치하나요?
- go get으로 etree 패키지를 설치합니다: go get github.com/beevik/etree README의 생성 예시와 같이 Go 프로그램에서 새 XML 문서를 만들고 stdout에 출력합니다
- etree은(는) 어디서 받을 수 있나요?
- 소스 코드와 설치 방법은 GitHub에 있습니다: https://github.com/beevik/etree
요약은 프로젝트 README를 바탕으로 AI가 작성했습니다. GitHub 통계는 매일 갱신됩니다.
관련 프로젝트
서버나 브라우저에서 HTML 및 XML 문서를 파싱하고 조작할 수 있는 빠른 jQuery 스타일 라이브러리입니다.
three.js용 WebGPU 패스 트레이싱 렌더러로, three-mesh-bvh를 사용해 브라우저에서 물리 기반 이미지를 렌더링합니다.
HTTP, 네트워킹, 데이터베이스, XML/JSON, 로깅을 아우르는 크로스플랫폼 C++ 클래스 라이브러리로, 네트워크 중심 애플리케이션 개발에 적합합니다.
REST 및 SOAP 서비스를 프록시하고 OpenAPI 배포, WSDL-to-OpenAPI 변환, OAuth2/JWT 보안, 메시지 검증 기능을 제공하는 오픈소스 API 게이트웨이입니다.
JSON, YAML, CSV, XML을 인터랙티브 그래프로 시각화하고 형식 변환과 코드 생성을 지원하는 오픈소스 JSON 편집기입니다.