在網路上傳輸資料時最常用得方式有兩種:xml和json
解析xml的方式有很多,這裡記錄比較常用的兩種:sax和pull解析的方式
待解析的xml檔案示例
<?xml version="1.0" encoding="utf-8"?>
>
>
sax解析name
>
>
18age
>
person
>
>
xml1name
>
>
43age
>
person
>
persons
>
核心工具類
public
class
saxhelper
extends
defaulthandler
/** * 讀到乙個開始標籤時呼叫,第二個引數為標籤名,最後乙個引數為屬性陣列
*/@override
public
void
startelement
(string uri, string localname, string qname,
attributes attributes)
throws saxexception
this
.tagname = localname;
}/**
* 讀到到內容,第乙個引數為字串內容,後面依次為起始位置與長度
*/@override
public
void
characters
(char
ch,
int start,
int length)
throws saxexception
elseif(
this
.tagname.
equals
("age"))
}}/** * 處理元素結束時觸發,這裡將物件新增到結合中
*/@override
public
void
endelement
(string uri, string localname, string qname)
throws saxexception
this
.tagname = null;
}/**
* 讀取到文件結尾時觸發,
*/@override
public
void
enddocument()
throws saxexception
//獲取persons集合
public arraylist
getpersons()
}
之後在mainactivity中寫乙個這樣的方法,呼叫就可以解析了
private arraylist
readxmlforsax()
throws exception
核心**
public
static arraylist
getpersons
(inputstream xml)
throws exception
elseif(
"name"
.equals
(parser.
getname()
))elseif(
"age"
.equals
(parser.
getname()
))break
;case xmlpullparser.end_tag:if(
"person"
.equals
(parser.
getname()
))break
;}
eventtype = parser.
next()
;}return persons;
}
待解析的資料來源
[,,
]
android給我們提供的解析類谷歌也提供了一種簡單的解析庫,gson
將解析結果存入物件
public
class
person
public string getid()
public
void
setname
(string name)
public string getname()
public
void
setage
(string age)
public string getage()
@override
public string tostring()
}
解析方法
private
void
parseeasyjson
(string json)
}catch
(exception e)
}
網路程式設計 json資料的解析
張三name 20age 北京city 長安街street adress person public static void main string args 解析string裡的json資料並返回乙個person物件 public static person parsejson string js...
python 解析網路資料報
1 問題描述 網路資料報,我已經使用mitmproxy 抓取了,但是,資料報有些資料是gzip進行編碼的,那麼怎麼還原成原始報文呢?使用的語言是python。2 網上資料 使用的方法,網上有zlib和gzip。使用gzip.decompress這個函式可以直接解密,可惜我的版本不支援。然後網上說的g...
網路資料封裝解析(IP,UDP,TCP)
ip資料報也叫ip報文分組,傳輸在iso網路7層結構中的網路層,它由ip報文頭和ip報文使用者資料組成,ip報文頭的長度一般在20到60個位元組之間,而乙個ip分組的最大長度則不能超過65535個位元組。一 下圖為ip分組的報文頭格式,報文頭的前20個位元組是固定的,後面的可變。版本 佔4位 bit...