android XML 해석 상세 (봉 인 된 도구 클래스)
6519 단어 android
DOM 해석;
PULL 해석;(android 자체 해석 XML 기술)
JDOM 해석;
SAX 해석;
DOM4J
PULL 분석 예제 코드:
<1>
저희 가 분석 할 XML 파일 은 로 컬 애플 리 케 이 션 의 폴 더 아래 나 네트워크 에 있 습 니 다.
주의: 그러면 이 두 가지 상황 은 모두 기능 목록 파일 에 권한 을 등록 해 야 합 니 다.
<2>
XmlPullParser: XML 당 김 분석 기
android 의 pull 해석 은 다음 과 같은 과정 이 있 습 니 다.
XmlPullParser. getEventType: 현재 해상도 가 어느 노드 에 있 는 지 가 져 옵 니 다.
XmlPullParser. getName: 주로 START 에 있 는TAG 또는 ENDTAG 이벤트 의 xml 태그 이름 입 니 다.
XmlPullParser. getText: 텍스트 내용 을 가 져 오 는 데 사 용 됩 니 다.
XmlPullParser. next (): 해석 기 를 다음 이벤트 로 이동 하면 모든 xml 파일 을 다 옮 길 수 있 습 니 다.
(인터넷 에서 가 져 오기) 인 스 턴 스 코드:
package com.example.tf.androidpull.com.example.utils;
import android.util.Xml;
import com.example.tf.androidpull.com.example.domin.Person;
import org.xmlpull.v1.XmlPullParser;
import java.io.ByteArrayOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.StringReader;
import java.net.HttpURLConnection;
import java.net.MalformedURLException;
import java.net.URL;
import java.util.ArrayList;
import java.util.List;
/**
* Created by TF on 2018/6/4.
*/
public class NetUtils {
//
public static InputStream getInputStreamByPath(String path) throws Exception {
URL url = new URL(path);
HttpURLConnection httpURLConnection = (HttpURLConnection) url.openConnection();
httpURLConnection.setConnectTimeout(3000);
int responseCode = httpURLConnection.getResponseCode();
if (responseCode == httpURLConnection.HTTP_OK) {
return httpURLConnection.getInputStream();
}
return null;
}
//
public static byte[] getByteArrayByInputStream(InputStream inputStream) throws IOException {
ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream();
byte[] buffer = new byte[1024];
int len = 0;
while ((len = inputStream.read(buffer)) != -1) {
byteArrayOutputStream.write(buffer, 0, len);
}
return byteArrayOutputStream.toByteArray();
}
//
public static String getStringInputStream(InputStream inputStream) throws IOException {
return new String(getByteArrayByInputStream(inputStream));
}
// xml
//START_DOCUMENT: xml 。END_DOCUMENT: xml
public static List getPersonsByXmlString(String xml) throws Exception {
List persons = new ArrayList<>();
// Pull
XmlPullParser xmlPullParser = Xml.newPullParser();
// Xml
xmlPullParser.setInput(new StringReader(xml));
//
int eventType = xmlPullParser.getEventType();
while(eventType!=XmlPullParser.END_DOCUMENT){
switch (eventType){
case XmlPullParser.START_DOCUMENT:
System.out.println();
break;
case XmlPullParser.START_TAG://
String startTag = xmlPullParser.getName();
System.out.println();
break;
case XmlPullParser.TEXT://
String text = xmlPullParser.getText();
System.out.println();
break;
case XmlPullParser.END_TAG://
String endTag = xmlPullParser.getName();
System.out.println();
break;
}
eventType = xmlPullParser.next();
}
return persons;
}
}
(로 컬 에서 가 져 오기) 인 스 턴 스 코드:
package com.hsj.example.pullparsedemo09;
import android.content.res.AssetManager;
import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.util.Xml;
import org.xmlpull.v1.XmlPullParser;
import java.io.InputStream;
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
//
AssetManager assetManager=getAssets();
try {
// open() ,
InputStream inputStream=assetManager.open("persons.xml");
//1. Xml
XmlPullParser parser= Xml.newPullParser();
//2. xml , InputStream
parser.setInput(inputStream,"utf-8");
//3.
int eventType=parser.getEventType();
//XmlPullParser.START_DOCUMENT=0
System.out.println("eventType="+eventType);
// xml
// XmlPullParser.END_DOCUMENT=1
while (eventType!=XmlPullParser.END_DOCUMENT){
switch (eventType){
//XmlPullParser.START_TAG=2:
case XmlPullParser.START_TAG:
//
String starTag=parser.getName();
if("person".equals(starTag)){
String id= parser.getAttributeValue(0);
String isbn=parser.getAttributeName(1);
System.out.println("id="+id+",isbn="+isbn);
}else if("name".equals(starTag)){
//
String name=parser.nextText();
System.out.println("name="+name);
}
System.out.println("startTag="+starTag);
break;
//XmlPullParser.TEXT=4:
/*case XmlPullParser.TEXT:
//
String text= parser.getText();
System.out.println("text="+text);
break;*/
case XmlPullParser.END_TAG:
//
String endTag=parser.getName();
System.out.println("endTag="+endTag);
break;
}
//
eventType=parser.next();
}
} catch (Exception e) {
e.printStackTrace();
}
}
}
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Kotlin의 기초 - 2부지난 글에서는 Kotlin이 무엇인지, Kotlin의 특징, Kotlin에서 변수 및 데이터 유형을 선언하는 방법과 같은 Kotlin의 기본 개념에 대해 배웠습니다. 유형 변환은 데이터 변수의 한 유형을 다른 데이터...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.