parsexml

XML 문서를 복합 객체의 집합으로 파싱합니다.

문법

parsexml [field=TARGET_FIELD] [overlay=BOOL]
선택 매개변수
field=TARGET_FIELD
입력으로 받는 데이터 스트림에서 파싱할 값이 저장된 필드 이름(기본값: line)
overlay=BOOL
원본 데이터의 출력 옵션(기본값: f).
  • t: 파싱된 데이터를 필드에 출력하고, 원본 데이터를 line 필드에 출력
  • f: 파싱된 데이터만 필드에 출력

사용 예

루트 XML 요소에 속한 하위 XML 요소를 필드로 추출합니다.

  • XML 요소가 문자열만 포함한다면 요소 태그를 필드의 이름으로 사용하고, 필드의 값으로 문자열을 할당합니다.
  • XML 요소에 속성이 있으면 각 XML 속성 이름-값 쌍을 맵의 키-값 쌍으로, XML 요소의 문자열을 _text 필드의 값으로 변환합니다.

예를 들어, <doc><id>sample</id></doc> 형태의 XML을 파싱하면 id 필드에 sample 문자열 값이 할당됩니다.

<doc><id>sample</id><name locale="ko">로그프레소</name></doc> 형태의 XML이라면 name 필드에는 {"locale":"ko","_text":"로그프레소"}와 같이 locale=ko, _text=로그프레소 이렇게 2개의 키-값 맵이 할당됩니다. parsemap 명령어를 조합하면 복합 객체 안에 있는 맵에서 쉽게 필드를 추출할 수 있습니다.

json
  "{line: '<doc><id>sample</id><name locale="ko">로그프레소</name></doc>'}"
| parsexml
| parsemap field=name overlay=t