依照慣例,先羅列下成員變量:
field.png
這個(gè)時(shí)候肯定會(huì)想是怎么用的偿乖,那就先看看構(gòu)造方法。
constructor.png
看到內(nèi)部的node、variables和xpathParser是直接外部傳入恳蹲,name是取得node的名稱,那就需要看下接下來(lái)的兩個(gè)賦值方法:parseAttributes俩滥、parseBody嘉蕾。
parseAttributes.png
這個(gè)方法解析某個(gè)節(jié)點(diǎn)的屬性。通過(guò)調(diào)用獲得當(dāng)前節(jié)點(diǎn)下所有屬性的map集合霜旧。然后迭代他得到一個(gè)屬性名和屬性值對(duì)應(yīng)的properties错忱。(這里需要了解下PropertyParser是怎么樣將屬性值進(jìn)行轉(zhuǎn)換的http://www.reibang.com/p/3385d6e9cde5)
再另外一個(gè)方法
parseBody.png
邏輯應(yīng)該不難理解,就是要找到node節(jié)點(diǎn)下的data,具體是要什么樣的data就要看getBodyData
getBodyData.png
最后一個(gè)方法以清,好像也蠻短的儿普,讀了就是要取到cdata數(shù)據(jù)或者就是text_node的數(shù)據(jù)。另外這里會(huì)將data數(shù)據(jù)進(jìn)行轉(zhuǎn)換掷倔。
剩下的方法先不看了眉孩,按照名稱大概也能猜到做什么的了