> 백엔드 개발 > XML/RSS 튜토리얼 > XML을 구문 분석하는 가장 효율적인 방법

XML을 구문 분석하는 가장 효율적인 방법

黄舟
풀어 주다: 2017-02-25 14:22:26
원래의
2539명이 탐색했습니다.

XML은 다양한 개발에 널리 사용되며 Android도 예외는 아닙니다. 데이터를 운반하는 중요한 역할로서 XML을 읽고 쓰는 방법은 Android 개발에 있어 중요한 기술이 되었습니다. 오늘은 Android 플랫폼에서 몇 가지 일반적인 XML 구문 분석 및 생성 방법을 소개하겠습니다.

안드로이드에서 흔히 사용되는 XML 파서는 SAX 파서, DOM 파서, PULL 파서입니다. 아래에서 자세히 소개하겠습니다.

SAX 파서:

SAX(간단한 API for XML) 파서는 이벤트 기반 파서이며, 그 핵심은 주로 이벤트 소스 및 이벤트 프로세서를 중심으로 작동하는 이벤트 처리 모드입니다. 이벤트 소스가 이벤트를 생성하면 해당 이벤트 프로세서의 처리 메서드를 호출하여 이벤트를 처리할 수 있습니다. 이벤트 소스가 이벤트 핸들러에서 특정 메서드를 호출할 때 해당 이벤트의 상태 정보도 이벤트 핸들러에 전달해야 이벤트 핸들러가 제공된 이벤트 정보를 기반으로 자체 동작을 결정할 수 있습니다.

SAX 파서의 장점은 파싱 속도가 빠르고 메모리를 덜 차지한다는 점이다. Android 모바일 장치에서 사용하기에 적합합니다.

DOM 파서:

DOM은 개발자가 DOM을 사용할 수 있도록 트리 구조를 기반으로 하는 노드 또는 정보 조각의 모음입니다. API는 XML 트리를 탐색하여 필요한 데이터를 검색합니다. 이 구조를 분석하려면 일반적으로 노드 정보를 검색하고 업데이트하기 전에 전체 문서를 로드하고 트리 구조를 구성해야 합니다.

DOM은 메모리에 트리 구조로 저장되기 때문에 검색 및 업데이트 효율성이 높아집니다. 그러나 특히 큰 문서의 경우 전체 문서를 구문 분석하고 로드하는 데 리소스가 많이 소모됩니다.

PULL 파서:

PULL 파서는 SAX와 유사하게 작동하며 둘 다 이벤트 기반입니다. 차이점은 프로세서가 이벤트를 트리거하고 코드를 실행하는 SAX와 달리 PULL 구문 분석 프로세스 중에 생성된 이벤트를 직접 얻은 다음 해당 작업을 수행해야 한다는 것입니다. PULL 파서는 작고 가벼우며, 파싱 속도가 빠르고, 간단하고 사용하기 쉬우며, 안드로이드 모바일 기기에서 사용하기에 매우 적합합니다. PULL 파서는 다양한 XML 파싱 시에도 안드로이드 시스템 내부에서 사용됩니다.

Android에서는 당연히 풀 파서가 첫 번째 선택입니다. PULL 파서는 작고 가벼우며, 파싱 속도가 빠르고, 간단하고 사용하기 쉬우며, 안드로이드 모바일 기기에서 사용하기에 매우 적합합니다. 안드로이드 시스템에서도 다양한 XML을 파싱할 때 PULL 파서를 사용하도록 권장하고 있습니다. 풀 파싱 기술. 풀 파싱(Pull Parsing) 기술은 타사에서 개발한 오픈소스 기술로, JavaSE 개발에도 적용할 수 있습니다.

PULL 작동:

XML pull은 시작 요소와 끝 요소를 제공합니다. 요소가 시작되면 파서를 호출할 수 있습니다. nextText는 XML 문서에서 모든 문자 데이터를 추출합니다. 문서가 끝까지 파싱되면 EndDocument 이벤트가 자동으로 생성됩니다.

일반적으로 사용되는 XML 풀 인터페이스 및 클래스:

XmlPullParser: 이 파서는 org.xmlpull.v1에 정의된 함수를 구문 분석하기 위한 인터페이스입니다.

XmlSerializer: XML 정보 세트의 순서를 정의하는 인터페이스입니다.

XmlPullParserFactory: 이 클래스는 XMPULL V1 API에서 XML을 생성하는 데 사용됩니다. 파서를 끌어옵니다.

XmlPullParserException: 단일 XML 풀 파서 관련 오류가 발생합니다.

PULL 파서는 SAX와 유사하게 작동하며 둘 다 이벤트 기반입니다.

차이점은 PULL 구문 분석 프로세스 중에 숫자가 반환되며, 프로세서가 이벤트를 트리거하고 실행하는 SAX와 달리 생성된 이벤트를 직접 얻은 다음 해당 작업을 수행해야 한다는 것입니다.

xml 선언을 읽고 START_DOCUMENT end를 반환하고 END_DOCUMENT를 반환합니다. ; 시작 태그는 START_TAG를 반환합니다.

끝 태그는 END_TAG를 반환합니다.

마지막으로 이 세 가지 구문 분석 기술을 비교하고 요약합니다.
Android 모바일 장치의 경우 장치 리소스가 소중하고 메모리가 제한되어 있으므로 적절한 XML 구문 분석 기술을 선택해야 합니다. 이는 액세스 속도를 향상시키는 데 도움이 됩니다.

DOM은 XML 파일을 처리할 때 XML 파일을 트리 구조로 구문 분석한 후 처리를 위해 메모리에 넣습니다. XML 파일이 작을 때는 간단하고 직관적이기 때문에 DOM을 선택할 수 있습니다.

SAX는 XML 파일을 구문 분석하기 위한 모드로 이벤트를 사용하며, XML 파일을 일련의 이벤트로 변환하고 다양한 이벤트 핸들러가 이를 처리하는 방법을 결정합니다. XML 파일이 큰 경우 SAX 기술을 선택하는 것이 더 합리적입니다. 코드 크기가 다소 크긴 하지만 모든 XML 파일을 메모리에 로드할 필요는 없습니다. 이는 제한된 Android 메모리에서 더 효율적이며 Android는 SAX를 사용하는 전통적인 방법과 편리한 SAX 래퍼를 제공합니다. Xml 클래스를 사용하는 것은 SAX를 사용하는 것보다 간단합니다.

XML 풀 구문 분석은 SAX 구문 분석과 같이 요소의 끝을 수신하지 않지만 시작 부분에서 대부분의 처리를 수행합니다. 이는 XML 파일을 조기에 읽는 데 유용하며 구문 분석 시간을 크게 줄일 수 있습니다. 이 최적화는 연결 속도가 느린 모바일 장치에 특히 중요합니다. 크기가 크지만 문서의 일부만 필요한 XML 문서의 경우 XML 풀 파서는 더 효율적인 접근 방식입니다.

위 내용은 가장 효율적인 xml 파싱 방법에 대한 내용입니다. 더 많은 관련 내용은 PHP 중국어 홈페이지(www.php.cn)를 참고해주세요!


관련 라벨:
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿