android 플랫폼에서 xml 파일 분석:SAX,PULL
9784 단어 android
드라이버, 이벤트는 ContentHandler 인터페이스에 정의되어 있으며, ContentHandler에서 자주 사용하는 방법은 다음과 같습니다.
//텍스트 노드 처리
•characters(char[] ch, int start, int length)
//노드 종료 시 트리거
•endElement(String uri, String localName, String qName)
//문서를 시작할 때 트리거
•startDocument()
//노드를 분석할 때 트리거 (qName: 이름 공간 접두사가 있는 탭 이름)
•startElement(String uri, String localName, String qName, Attributes attributes)
//문서 종료 시 트리거
•endDocument()
해결 도구 클래스
public
class
XmlTool {
public
static
List
<
User
>
readXmlSAX(InputStream inputStream)
throws
Exception{
SAXParserFactory factory
=
SAXParserFactory.newInstance();
SAXParser parser
=
factory.newSAXParser();
MyDefaultHandler defaultHandler
=
new
XmlTool().init();
parser.parse(inputStream, defaultHandler);
inputStream.close();
return
defaultHandler.getUsers();
}
public
MyDefaultHandler init(){
return
new
MyDefaultHandler();
}
public
class
MyDefaultHandler
extends
DefaultHandler{
private
List
<
User
>
users;
private
User user;
private
String content;
public
List
<
User
>
getUsers() {
return
users;
}
@Override
public
void
characters(
char
[] ch,
int
start,
int
length)
throws
SAXException {
super
.characters(ch, start, length);
content
=
new
String(ch,start,length);
}
@Override
public
void
startDocument()
throws
SAXException {
users
=
new
ArrayList
<
User
>
();
}
@Override
public
void
startElement(String uri, String localName, String qName,
Attributes attributes)
throws
SAXException {
super
.startElement(uri, localName, qName, attributes);
if
(
"
user
"
.equals(localName)){
user
=
new
User();
user.setId(Integer.parseInt(attributes.getValue(
"
id
"
)));
}
}
@Override
public
void
endElement(String uri, String localName, String qName)
throws
SAXException {
super
.endElement(uri, localName, qName);
if
(
"
name
"
.equals(localName)){
user.setName(content);
}
else
if
(
"
password
"
.equals(localName)){
user.setPassword(content);
}
else
if
(
"
user
"
.equals(localName)){
users.add(user);
}
}
}
}
SAX 해석 xml 파일 외에도 PULL 해석기를 사용할 수 있습니다.안드로이드 시스템
Pull 파서가 내장되어 있습니다.Pull 파서도 이벤트 해석을 사용합니다.
Pull 파서의 주요 이벤트 및 방법
XmlPullParser parser = Xml.newPullParser();//pull 해상도 가져오기
parser.setInput(fileInputStream, “utf-8”);//xml 문서를 흐르는 형식으로 해석기에 전달하다
int eventCode = parser.getEventType();//해석 이벤트가 되돌아오는 코드 가져오기
XmlPullParser.START_DOCUMENT//시작 문서
XmlPullParser.END_DOCUMENT//끝 문서
XmlPullParser.START_TAG//시작 노드
XmlPullParser.END_TAG//끝 노드
eventCode = parser.next();//다음 노드 해결
parser.getName()//노드 이름 가져오기
parser.getattributeValue(null, id)//노드 속성 얻기
parser.nextText()//test 텍스트 값 가져오기
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Kotlin의 기초 - 2부지난 글에서는 Kotlin이 무엇인지, Kotlin의 특징, Kotlin에서 변수 및 데이터 유형을 선언하는 방법과 같은 Kotlin의 기본 개념에 대해 배웠습니다. 유형 변환은 데이터 변수의 한 유형을 다른 데이터...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.