象,其中sit sname等為預(yù)置的字符串。
[0029] S102;在所述目標(biāo)網(wǎng)頁中,獲取與所述目標(biāo)元素對(duì)象存在特定結(jié)構(gòu)關(guān)系的相關(guān)元 素對(duì)象;
[0030] 如前所述,在網(wǎng)頁中,一個(gè)元素通常其它一個(gè)或多個(gè)元素對(duì)象存在特定的結(jié)構(gòu)關(guān) 系,送種結(jié)構(gòu)關(guān)系的正常與否,可W反映出在該元素處是否存在著編碼錯(cuò)誤。因此,在確定 目標(biāo)網(wǎng)頁中待檢測(cè)的目標(biāo)元素對(duì)象,可W在目標(biāo)網(wǎng)頁中,獲取與目標(biāo)元素對(duì)象存在特定結(jié) 構(gòu)關(guān)系的相關(guān)元素對(duì)象。在一個(gè)網(wǎng)頁中,元素對(duì)象間存在的關(guān)系可W分為多種,同時(shí),元素 對(duì)象間的關(guān)系也可W用樹形的數(shù)據(jù)結(jié)構(gòu)來描述。
[0031] 在本申請(qǐng)實(shí)施例提供的方法中,主要利用了元素對(duì)象間存在的父子關(guān)系,W及兄 弟關(guān)系。在獲取與目標(biāo)元素對(duì)象存在特定結(jié)構(gòu)關(guān)系的相關(guān)元素對(duì)象時(shí),可W獲取與目標(biāo)元 素對(duì)象存在特定結(jié)構(gòu)關(guān)系的W下相關(guān)元素對(duì)象:目標(biāo)元素對(duì)象的父元素;目標(biāo)元素對(duì)象的 下一個(gè)兄弟元素;目標(biāo)元素對(duì)象的上一個(gè)兄弟元素;目標(biāo)元素對(duì)象的子元素(包括目標(biāo)元 素對(duì)象的第一個(gè)子元素,或最后一個(gè)子元素)等。
[0032] W下來舉例介紹網(wǎng)頁中元素對(duì)象的結(jié)構(gòu)關(guān)系,例如,有如下編碼正確的HTML代 碼:
[0033]
[0034] 其中,各元素都具有唯一的標(biāo)識(shí)信息"id"與之對(duì)應(yīng),其中,id為"box"的元素對(duì) 象可W作為id為"a"的元素對(duì)象的父元素,id為"a"的元素對(duì)象可W作為id為"box"的 元素對(duì)象的子元素,而id為"b"的元素對(duì)象可W作為id為"a"的元素對(duì)象的下一個(gè)兄弟 元素,W此類推??梢?,當(dāng)W id為"a"的元素對(duì)象作為目標(biāo)元素對(duì)象時(shí),與該元素對(duì)象存在 特定關(guān)系的元素對(duì)象有多個(gè),并且不同的元素對(duì)象與該元素可能存在不同的結(jié)構(gòu)關(guān)系。
[0035] 在實(shí)際應(yīng)用中,可W獲取與目標(biāo)元素對(duì)象具有父子關(guān)系的父/子元素,和/或具有 兄弟關(guān)系的上一個(gè)或下一個(gè)兄弟元素,會(huì)獲得更加準(zhǔn)確的分析結(jié)果。優(yōu)選的,可W同時(shí)獲取 與目標(biāo)元素對(duì)象具有父子關(guān)系的父/子元素,W及具有兄弟關(guān)系的上一個(gè)或下一個(gè)兄弟元 素,會(huì)獲得更好的分析結(jié)果。例如,在上述編碼正確的HTML代碼中,獲取與id為"a"的目標(biāo) 元素對(duì)象存在特定結(jié)構(gòu)關(guān)系的相關(guān)元素對(duì)象時(shí),可W獲取該目標(biāo)元素對(duì)象的父元素,即id 為"box"的元素對(duì)象,W及該目標(biāo)元素對(duì)象的下一個(gè)兄弟元素,即id為"b"的元素對(duì)象。
[0036] S103 ;將所述相關(guān)元素對(duì)象與預(yù)置的期望元素進(jìn)行對(duì)比;
[0037] 在步驟S102中,在目標(biāo)網(wǎng)頁中獲取到了與目標(biāo)元素對(duì)象存在特定關(guān)系的相關(guān)元 素對(duì)象,接下來,可W將獲取到的相關(guān)元素對(duì)象與預(yù)期的元素對(duì)象進(jìn)行對(duì)比,即將相關(guān)元素 對(duì)象與預(yù)置的期望元素進(jìn)行對(duì)比。對(duì)比的結(jié)果,可W作為判斷目標(biāo)元素對(duì)象或者相關(guān)元素 對(duì)象處是否存在編碼錯(cuò)誤的依據(jù)。
[0038] 預(yù)置的期望元素,可W認(rèn)為是當(dāng)網(wǎng)頁代碼編寫正確時(shí),與目標(biāo)元素對(duì)象存在特定 結(jié)構(gòu)關(guān)系的正確的元素對(duì)象,或多個(gè)元素對(duì)象的組合。下面W步驟S102中編碼正確的HTML 代碼的為示例來說明。當(dāng)所要分析檢測(cè)的目標(biāo)元素對(duì)象為id為"a"的目標(biāo)元素對(duì)象時(shí),可 W將該目標(biāo)元素對(duì)象的父元素 W及該目標(biāo)元素對(duì)象的下一個(gè)兄弟元素作為參照,W該元素 對(duì)象的父元素 W及下一個(gè)兄弟元素作為預(yù)期的期望元素,即當(dāng)網(wǎng)頁代碼編寫正確與該目標(biāo) 元素對(duì)象具有對(duì)象關(guān)系的元素對(duì)象,分別為id為"box"的元素對(duì)象,W及id為"b"的元素 對(duì)象。
[0039] 在該示例中,假設(shè)代碼被錯(cuò)誤的編寫,對(duì)應(yīng)于上述編碼正確的HTML代碼,在目標(biāo) 網(wǎng)頁中有如下錯(cuò)誤的HTML代碼:
[0040]
[0041] 此時(shí),當(dāng)所要分析檢測(cè)的目標(biāo)元素對(duì)象為id為"a"的目標(biāo)元素對(duì)象時(shí),在錯(cuò)誤編 碼的目標(biāo)網(wǎng)頁中,獲取與該目標(biāo)元素對(duì)象存在特定結(jié)構(gòu)關(guān)系的相關(guān)元素對(duì)象時(shí),可W獲取 該目標(biāo)元素對(duì)象的父元素,及其下一個(gè)兄弟元素。在該錯(cuò)誤編碼的目標(biāo)網(wǎng)頁中獲取上述元 素對(duì)象時(shí),獲取到的該目標(biāo)元素的父元素為id為"box"的目標(biāo)元素,而獲取到的該目標(biāo)元 素的下一個(gè)兄弟元素則不存在,在一些平臺(tái)中表現(xiàn)為返回值為NU化。
[004引在獲取到id為"a"的目標(biāo)元素對(duì)象的各相關(guān)元素對(duì)象后,可W將該目標(biāo)元素對(duì)象 的相關(guān)元素對(duì)象與預(yù)置的期望元素進(jìn)行對(duì)比,對(duì)比相關(guān)元素對(duì)象與對(duì)應(yīng)點(diǎn)期望元素是否一 致。如上述W id為"a"的目標(biāo)元素對(duì)象進(jìn)行分析時(shí),得到的對(duì)比結(jié)果如表1所示:
[0043] 表 1
[0044]
[004引由此可W得到當(dāng)W id為"a"的目標(biāo)元素對(duì)象進(jìn)行分析時(shí),將其相關(guān)元素對(duì)象與預(yù) 置的期望元素進(jìn)行對(duì)比,得到的對(duì)比結(jié)果不一致。
[0046] 此外,當(dāng)獲取與目標(biāo)元素對(duì)象存在特定結(jié)構(gòu)關(guān)系的兩個(gè)或兩個(gè)W上的相關(guān)元素對(duì) 象時(shí),可W將兩個(gè)或兩個(gè)W上的相關(guān)元素對(duì)象的信息表示為第一數(shù)組,如上述W id為"a" 的目標(biāo)元素對(duì)象進(jìn)行分析時(shí),獲取的相關(guān)元素對(duì)象為其父元素 W及下一個(gè)兄弟元素。首先, 確定目標(biāo)網(wǎng)頁中待檢測(cè)的目標(biāo)元素對(duì)象,例如可W通過JS腳本獲取指定id的元素對(duì)象作 為目標(biāo)元素對(duì)象:
[0047] elemA = document. ge1:ElementById ( '日')
[004引此時(shí)id為"a"的目標(biāo)元素對(duì)的相關(guān)元素對(duì)象可W表示為:
[0049] currentRelation = {
[0050] parent:elemA. parentNode,
[0051] next:elemA. nextSilbing};
[0052] 而預(yù)置的期望元素的信息,也可W用同樣數(shù)據(jù)結(jié)構(gòu)的第二數(shù)組來描述:
[0053] var correctRelation = {
[0054] parent: document. ge1:ElementById ( 'box'),
[00巧]next:document. ge1:ElementById( 'c' )};
[0056] 送樣,在將相關(guān)元素對(duì)象與預(yù)置的期望元素進(jìn)行對(duì)比時(shí),只需要將第一數(shù)組與預(yù) 置的第二數(shù)組進(jìn)行對(duì)比即可。
[0057] S104 ;根據(jù)對(duì)比的結(jié)果,確定所述目標(biāo)網(wǎng)頁在所述目標(biāo)元素對(duì)象或所述相關(guān)元素 對(duì)象處是否存在編碼錯(cuò)誤。
[0058] 在將相關(guān)元素對(duì)象與預(yù)置的期望元素進(jìn)行對(duì)比,獲取對(duì)比結(jié)果后,可W根據(jù)對(duì)比 結(jié)果來確定目標(biāo)網(wǎng)頁在目標(biāo)元素對(duì)象或相關(guān)元素對(duì)象處是否存在編碼錯(cuò)誤。一般情況下, 在對(duì)比結(jié)果為相關(guān)元素對(duì)象與預(yù)置的期望元素部分或全部不一致的情況下,即可確定目標(biāo) 網(wǎng)頁在目標(biāo)元素對(duì)象或相關(guān)元素對(duì)象處是否存在編碼錯(cuò)誤。另外在確定目標(biāo)網(wǎng)頁在目標(biāo)元 素對(duì)象或相關(guān)元素對(duì)象處存在編碼錯(cuò)誤后,返回編碼錯(cuò)誤的元素對(duì)象的信息,例如可W將 目標(biāo)元素對(duì)象的位置信息,和/或相關(guān)元素對(duì)象的位置信息返回;也可W直接打開目標(biāo)網(wǎng) 頁,并將目標(biāo)元素對(duì)象,和/或相關(guān)元素對(duì)象W特定的方式進(jìn)行顯示。
[0059] W上介紹了本申請(qǐng)實(shí)施例的網(wǎng)頁編碼的分析方法,通過該方法,可W目標(biāo)網(wǎng)頁中 確定目標(biāo)網(wǎng)頁中待檢測(cè)的目標(biāo)元素對(duì)象,獲取與目標(biāo)元素對(duì)象存在特定結(jié)構(gòu)關(guān)系的相關(guān)元 素對(duì)象,進(jìn)而將相關(guān)元素對(duì)象與預(yù)置的期望元素進(jìn)行對(duì)比,根據(jù)對(duì)比的結(jié)果,確定目標(biāo)網(wǎng)頁 在所述目標(biāo)元素對(duì)象或相關(guān)元素對(duì)象處是否存在編碼錯(cuò)誤。本方法從與網(wǎng)頁中元素對(duì)象的 結(jié)構(gòu)關(guān)系角度,對(duì)網(wǎng)頁中的目標(biāo)元素進(jìn)行分析,根據(jù)發(fā)生編碼錯(cuò)誤的元素對(duì)象和與其它元 素對(duì)象之間的送種結(jié)構(gòu)關(guān)系會(huì)發(fā)生改變,來判斷目標(biāo)元素對(duì)象或相關(guān)元素對(duì)象處是否發(fā)生 了編碼錯(cuò)誤,提高了網(wǎng)頁編碼中識(shí)別錯(cuò)誤編碼的效率,可W幫助網(wǎng)頁設(shè)計(jì)人員降低網(wǎng)頁編 碼錯(cuò)誤的出現(xiàn)概率。
[0060] 與本申請(qǐng)實(shí)施例提供的網(wǎng)頁編碼的分析方法相對(duì)應(yīng),還提供了一種網(wǎng)頁編碼的分 析裝置,請(qǐng)參看圖2,為本申請(qǐng)實(shí)施例提供的網(wǎng)頁編碼的分析裝置的示意圖,如圖2所示,該 裝置可W包括:
[0061] 目標(biāo)元素確定單元201,用于讀取待檢測(cè)的目標(biāo)網(wǎng)頁,確定所述目標(biāo)網(wǎng)頁中待檢測(cè) 的目標(biāo)元素對(duì)象;
[0062] 相關(guān)元素獲取單元202,用于在所述目標(biāo)網(wǎng)頁中,獲取與所述目標(biāo)元素對(duì)象存在特 定結(jié)構(gòu)關(guān)系的相關(guān)元素對(duì)象;
[0063] 元素對(duì)比單元203,用于將所述相關(guān)元素對(duì)象與預(yù)置的期望元素進(jìn)行對(duì)比;
[0064] 錯(cuò)誤確定單元204,用于根據(jù)對(duì)比的結(jié)果,確定所述目標(biāo)網(wǎng)頁在所述目標(biāo)元素對(duì)象 或所述相關(guān)元素對(duì)象處是否