XML 용 Grep 도구 [닫기]


22

XML에서 grep 같은 작업을 수행 할 수있는 좋은 도구를 찾고 있습니다 (예 : 특정 속성 만 추출).

Grep 자체적으로 처리 할 수 ​​없음-모든 DFA 도구는 비재 귀적 일치 만 처리 할 수 ​​있으며 내 재귀적일 수 있습니다.

xgrep 을 시도했지만 불안정하지만 안정적이고 안정적인 도구를 원합니다.

어떤 추천?

편집 : 나는 리눅스에서 잘 작동하는 오픈 소스 도구를 선호합니다.

답변:


21

XMLStarlet (Wikipedia)은에 가까운 명령 줄 도구입니다 grep. 오픈 소스 소프트웨어 (MIT 라이센스)이며 Linux 및 Windows에서 잘 작동합니다.

XMLStarlet 웹 사이트 는 다음과 같이 설명합니다.

XMLStarlet은 UNIX grep을 사용하여 일반 텍스트 파일에 대해 수행되는 것과 유사한 방식으로 간단한 쉘 명령 세트를 사용하여 XML 문서 및 파일을 변환, 쿼리, 유효성 검증 및 편집하는 데 사용할 수있는 명령 행 유틸리티 (도구) 세트입니다. awk, diff, patch, join 등의 명령.

데비안 / 우분투 패키지의 이름은 xmlstarlet입니다. 그러나 맨 페이지의 내용과 달리 이진은 xmlstarlet데비안 / 우분투에 이름이 지정 되어 있지 않습니다 xml.

SourceForge에는 Windows 바이너리도 있습니다.

간단한 소개는 IBM의 XMLStarlet 작업 시작을 참조하십시오 .


첫 번째 링크에서 후행 슬래시를 제거하십시오.
Bkkbrad

나는 그것이 동작하지 않습니다 ... 그것은 :( 꽤 쓸모가 '/'(전체 문서)를 제외한 모든 XPath는에 일치하지 않습니다
Hendy 이르 완

@HendyIrawan-xpath를 어떻게 사용하고 있지 않습니까? (XML에는 설명하지 않는 기본 네임 스페이스가 있습니까?)
Daniel Haley

복제하려고했지만 저장소가 손상 된 것 같습니다.
Hola Soy Edu Feliz Navidad

5

다양한 언어 의 XPath 구문은 xml에서 항목을 찾는 데 가장 좋습니다. 실제로 xgrep 제작자가 권장 하는 도구 중 하나 는 기본적으로 XPath 입력을 허용하는 Perl XML 파서입니다.


5

Linux에서 작동하는 도구는 xml_grep 입니다. XML을 완전히 이해하며 한 줄씩 도구가 아닙니다.

xml_grepXML :: Twig 패키지 에 독립형 도구 로 포함되어 있습니다 . Grepping 기능은 XPath 사양을 지원하므로 매우 강력합니다 .

샘플 명령 줄 (2 월 중순 이후 3 부작 데이터 덤프 에서 수정 된 게시물 추출 ) :

xml_grep -p --cond="row[@LastEditDate>'2010-02-14']"  posts.xml  > lateEditedPosts.xml

설치가 쉽습니다. 어느 한 쪽

  • sudo cpan -i "XML::Twig"아래 참조 된 xml_grep 요리 책에 설명 된대로

또는


추가 정보:

xml_grep에 대해 찾은 가장 좋은 소개 는 xml_grep cookbook 이며 약 두 페이지입니다. 다른:


끊어진 링크를 수정했지만 triology Data Dump 링크도 끊어졌습니다. 내가 할 수있는 것을 볼 것이다.
Peter Mortensen


0

XML에는 grep-like 도구를 사용하지 말고 대신 라이브러리를 사용하여 XML을 구문 분석하십시오.
정확히 무엇을 원하십니까? 프로그래밍 언어가 있습니까? .NET 내장 XML 파서는 프로그램을 기꺼이 작성하려는 경우 작업에 쉽게 적합하다고 생각합니다.

업데이트 : Linux의 경우 잘 알려진 XML 파서 라이브러리는 libxml2 입니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.