亚洲成年人黄色一级片,日本香港三级亚洲三级,黄色成人小视频,国产青草视频,国产一区二区久久精品,91在线免费公开视频,成年轻人网站色直接看

存儲(chǔ)和定位結(jié)構(gòu)化文檔選取內(nèi)容的方法與系統(tǒng)的制作方法

文檔序號(hào):6551255閱讀:202來源:國知局
存儲(chǔ)和定位結(jié)構(gòu)化文檔選取內(nèi)容的方法與系統(tǒng)的制作方法
【專利摘要】本發(fā)明涉及一種存儲(chǔ)、定位和再定位結(jié)構(gòu)化文檔選取內(nèi)容的方法與裝置,存儲(chǔ)方法包括,計(jì)算步驟,以任意節(jié)點(diǎn)為參照節(jié)點(diǎn),計(jì)算出用戶選取內(nèi)容起始位置的偏移量和結(jié)束位置的偏移量;存儲(chǔ)步驟,將參照節(jié)點(diǎn)、選取內(nèi)容起始位置的偏移量和選取內(nèi)容結(jié)束位置的偏移量存儲(chǔ)到服務(wù)器。定位方法包括,輸入步驟,從服務(wù)器讀取定位信息;定位步驟,根據(jù)定位信息在新結(jié)構(gòu)化文檔中定位選取內(nèi)容。重新定位結(jié)構(gòu)化文檔選取內(nèi)容的方法,包括如下定位信息讀取步驟、檢索步驟、次數(shù)比較步驟和重新定位步驟。
【專利說明】存儲(chǔ)和定位結(jié)構(gòu)化文檔選取內(nèi)容的方法與系統(tǒng)
【技術(shù)領(lǐng)域】
[0001]本申請(qǐng)涉及一種存儲(chǔ)和定位結(jié)構(gòu)化文檔選取內(nèi)容的方法與系統(tǒng),其能夠?qū)崿F(xiàn)結(jié)構(gòu)化文檔選取內(nèi)容的位置存儲(chǔ)和重新定位,屬于本發(fā)明屬于信息檢索【技術(shù)領(lǐng)域】。
【背景技術(shù)】
[0002]目前,隨著計(jì)算機(jī)網(wǎng)絡(luò)的廣泛應(yīng)用,人們對(duì)于存儲(chǔ)和定位結(jié)構(gòu)化文檔上的選取內(nèi)容具有強(qiáng)烈的需求。人們希望對(duì)于已經(jīng)訪問的結(jié)構(gòu)化文檔內(nèi)容能夠?qū)崿F(xiàn)精確定位。也就是說,在再次訪問該結(jié)構(gòu)化文檔時(shí),能夠精確地定位已經(jīng)選擇的結(jié)構(gòu)化文檔內(nèi)容。
[0003]為了解決上述技術(shù)問題,現(xiàn)有技術(shù)做了一些探索?,F(xiàn)有技術(shù)涉及存儲(chǔ)和定位結(jié)構(gòu)化文檔上的選取內(nèi)容的方法有兩種,一種方法是針對(duì)靜態(tài)結(jié)構(gòu)化文檔,通過保存上次用戶使用鼠標(biāo)標(biāo)記時(shí)操作起始所在的屏幕坐標(biāo)來定位選取內(nèi)容。另一種方法通過保存用戶選取內(nèi)容的XPath路徑來定位,DOM(Document Object Model)是一種處理可擴(kuò)展標(biāo)記語言(包括HTML)的標(biāo)準(zhǔn)編程接口,它將HTML文檔看成是一棵擁有許多結(jié)點(diǎn)的樹,而XPath則是遵循DOM的路徑格式的路徑表達(dá)式,可以描述從一個(gè)DOM節(jié)點(diǎn)到另一個(gè)DOM結(jié)點(diǎn)的步驟順序。該方法通過記錄根節(jié)點(diǎn)到選取內(nèi)容所在DOM節(jié)點(diǎn)的XPath路徑來實(shí)現(xiàn)定位選取內(nèi)容。顯然,第一種方法由于僅僅針對(duì)靜態(tài)網(wǎng)頁所以局限性非常明顯,同時(shí)需要通過所保存的屏幕坐標(biāo)加以定位處理效率不高。第二種方法采用較為普遍,例如,雅虎公司于2013年5月9日公開的US2013117127A1號(hào)美國專利申請(qǐng),涉及一種根據(jù)用戶之前的選擇內(nèi)容對(duì)廣告信息加以定位的系統(tǒng)和方法,主要根據(jù)類似思路加以設(shè)計(jì)。再如,美國網(wǎng)絡(luò)技術(shù)應(yīng)用公司(NetworkAppliance Inc.)于2005年12月13日公開的US6976189B1號(hào)美國專利申請(qǐng)、于2008年6月10日公開的US7386762B1號(hào)美國專利申請(qǐng)、于2010年11月9日公開的US7831864B1號(hào)美國專利申請(qǐng)均涉及將基于內(nèi)容的用戶行為加以存儲(chǔ)和處理的系統(tǒng),其中即采用將文檔看做包括許多節(jié)點(diǎn)的樹狀結(jié)構(gòu),通過樹狀結(jié)構(gòu)的遍歷算法優(yōu)化實(shí)現(xiàn)處理。
[0004]上述兩種處理思路,尤其是第二種處理思路所存在的技術(shù)問題在于:實(shí)現(xiàn)的通用性和定位的準(zhǔn)確性較差。實(shí)現(xiàn)的通用性差主要體現(xiàn)在移動(dòng)終端和通用計(jì)算機(jī)等多種計(jì)算設(shè)備在實(shí)現(xiàn)上述功能方面的通用性不強(qiáng),由于移動(dòng)終端上瀏覽器對(duì)于網(wǎng)頁的呈現(xiàn)方式與通用計(jì)算機(jī)上有所不同,生成的DOM樹結(jié)構(gòu)有所不同,因此在通用計(jì)算機(jī)上保存的選取內(nèi)容可能無法在移動(dòng)終端的網(wǎng)頁上定位。定位的準(zhǔn)確性差主要體現(xiàn)在靜態(tài)網(wǎng)頁被修改后定位不準(zhǔn)確和動(dòng)態(tài)網(wǎng)頁插件加載對(duì)于定位的影響,當(dāng)用在靜態(tài)網(wǎng)頁時(shí),網(wǎng)頁文檔被修改后,新網(wǎng)頁無法根據(jù)已保存的XPath路徑信息定位選取內(nèi)容,當(dāng)用在動(dòng)態(tài)網(wǎng)頁時(shí),由于網(wǎng)頁插件、瀏覽器插件或其他第三方組件可能對(duì)網(wǎng)頁增加一些標(biāo)簽以達(dá)到插件效果,所保存的XPath路徑在新插件無法加載時(shí),無法用來定位選取內(nèi)容。

【發(fā)明內(nèi)容】

[0005]為了解決上述問題,提供一種在計(jì)算機(jī)和移動(dòng)終端上都可以精確穩(wěn)定地存儲(chǔ)和定位結(jié)構(gòu)化文檔上的選取內(nèi)容的方法與裝置。[0006]本發(fā)明為解決上述技術(shù)問題采用以下技術(shù)方案:
[0007]—種存儲(chǔ)結(jié)構(gòu)化文檔選取內(nèi)容的方法,包括如下步驟:計(jì)算步驟,以一個(gè)或者多個(gè)任意節(jié)點(diǎn)為參照節(jié)點(diǎn),計(jì)算出用戶選取內(nèi)容起始位置的偏移量和結(jié)束位置的偏移量;存儲(chǔ)步驟,將參照節(jié)點(diǎn)、選取內(nèi)容起始位置的偏移量和選取內(nèi)容結(jié)束位置的偏移量存儲(chǔ)到服務(wù)器。
[0008]作為優(yōu)選方案,如上所述的存儲(chǔ)結(jié)構(gòu)化文檔選取內(nèi)容的方法,其中,存儲(chǔ)步驟還存儲(chǔ)選取內(nèi)容;參照節(jié)點(diǎn)為結(jié)構(gòu)化文檔正文的根節(jié)點(diǎn);并且,所述存儲(chǔ)步驟還存儲(chǔ)統(tǒng)一資源定位符。
[0009]如以上任一方案和優(yōu)選方案所述的存儲(chǔ)結(jié)構(gòu)化文檔選取內(nèi)容的方法,其中計(jì)算步驟包括如下子步驟,起始位置的內(nèi)容長(zhǎng)度計(jì)算步驟,計(jì)算選取內(nèi)容起始位置與最近文檔節(jié)點(diǎn)之間的內(nèi)容長(zhǎng)度;遍歷步驟,從參照節(jié)點(diǎn)開始,遍歷最近文檔節(jié)點(diǎn)之前的每個(gè)節(jié)點(diǎn),并判斷節(jié)點(diǎn)標(biāo)簽是否是特殊標(biāo)簽表中的標(biāo)簽,如果是,將表中標(biāo)簽對(duì)應(yīng)的值作為節(jié)點(diǎn)中內(nèi)容的長(zhǎng)度,如果不是,取得節(jié)點(diǎn)中內(nèi)容的長(zhǎng)度;最近文檔節(jié)點(diǎn)偏移量計(jì)算步驟,將最近文檔節(jié)點(diǎn)之前每個(gè)節(jié)點(diǎn)中內(nèi)容的長(zhǎng)度進(jìn)行累加,得到最近文檔節(jié)點(diǎn)的偏移量;選取內(nèi)容起始位置偏移量計(jì)算步驟,將最近文檔節(jié)點(diǎn)的偏移量加上選取內(nèi)容起始位置與最近文檔節(jié)點(diǎn)之間的內(nèi)容長(zhǎng)度,得到選取內(nèi)容起始位置的偏移量。
[0010]或者,如以上任一方案和優(yōu)選方案所述的存儲(chǔ)結(jié)構(gòu)化文檔選取內(nèi)容的方法,其中計(jì)算步驟包括如下子步驟,結(jié)束位置的內(nèi)容長(zhǎng)度計(jì)算步驟,計(jì)算出選取內(nèi)容結(jié)束位置與最近文檔節(jié)點(diǎn)之間的內(nèi)容長(zhǎng)度;遍歷步驟,從參照節(jié)點(diǎn)開始,遍歷最近文檔節(jié)點(diǎn)之前的每個(gè)節(jié)點(diǎn),并判斷節(jié)點(diǎn)標(biāo)簽是否是特殊標(biāo)簽表中的標(biāo)簽,如果是,將表中標(biāo)簽對(duì)應(yīng)的值作為節(jié)點(diǎn)中內(nèi)容的長(zhǎng)度,如果不是,取得節(jié)點(diǎn)中內(nèi)容的長(zhǎng)度;節(jié)點(diǎn)偏移量計(jì)算步驟,將最近文檔節(jié)點(diǎn)之前每個(gè)節(jié)點(diǎn)中內(nèi)容的長(zhǎng)度進(jìn)行累加,得到最近文檔節(jié)點(diǎn)的偏移量;結(jié)束位置的偏移量計(jì)算步驟,將最近文檔節(jié)點(diǎn)的偏移量加上選取內(nèi)容結(jié)束位置與最近文檔節(jié)點(diǎn)之間的內(nèi)容長(zhǎng)度,得到選取內(nèi)容結(jié)束位置的偏移量。
[0011]一種定位結(jié)構(gòu)化文檔選取內(nèi)容的方法,包括如下步驟:輸入步驟,從服務(wù)器讀取參照節(jié)點(diǎn)、用戶選取內(nèi)容起始位置的偏移量和結(jié)束位置的偏移量等定位信息;定位步驟,根據(jù)定位信息在新結(jié)構(gòu)化文檔中定位選取內(nèi)容。
[0012]其中,輸入步驟讀取的定位信息包括參照節(jié)點(diǎn)、用戶選取內(nèi)容起始位置的偏移量和結(jié)束位置的偏移量。
[0013]更具體地,其中定位步驟包括,遍歷步驟,在新結(jié)構(gòu)化文檔中,遍歷參照節(jié)點(diǎn)中的子節(jié)點(diǎn),每經(jīng)過一個(gè)節(jié)點(diǎn),判斷節(jié)點(diǎn)標(biāo)簽是否是特殊標(biāo)簽表中的標(biāo)簽,如果是,將表中標(biāo)簽對(duì)應(yīng)的值作為節(jié)點(diǎn)中內(nèi)容的長(zhǎng)度,如果不是,取得節(jié)點(diǎn)中內(nèi)容的長(zhǎng)度,并將節(jié)點(diǎn)中內(nèi)容的長(zhǎng)度進(jìn)行累加;內(nèi)容長(zhǎng)度獲取步驟,當(dāng)累加值第一次大于或者等于選取內(nèi)容起始位置的偏移量時(shí),獲取該節(jié)點(diǎn)前面一個(gè)最近文檔節(jié)點(diǎn)的累加值,將選取內(nèi)容起始位置的偏移量減去最近文檔節(jié)點(diǎn)的累加值得到選取內(nèi)容起始位置與最近文檔節(jié)點(diǎn)之間的內(nèi)容長(zhǎng)度;起始位置確定步驟,根據(jù)所述內(nèi)容長(zhǎng)度得到選取內(nèi)容起始位置;內(nèi)容長(zhǎng)度確定步驟,將累加的值第一次大于或者等于選取內(nèi)容結(jié)束位置的偏移量時(shí),獲取該節(jié)點(diǎn)前面一個(gè)最近文檔節(jié)點(diǎn)的累加值,將選取內(nèi)容結(jié)束位置的偏移量減去最近文檔節(jié)點(diǎn)的累加值得到選取內(nèi)容結(jié)束位置與最近文檔節(jié)點(diǎn)之間的內(nèi)容長(zhǎng)度;選取內(nèi)容結(jié)束位置確定步驟,根據(jù)所述內(nèi)容長(zhǎng)度得到選取內(nèi)容結(jié)束位置;選取內(nèi)容定位步驟,根據(jù)選取內(nèi)容起始位置和選取內(nèi)容結(jié)束位置定位選取內(nèi)容。
[0014]作為本發(fā)明進(jìn)一步的優(yōu)化方案,將選取內(nèi)容在參照節(jié)點(diǎn)中出現(xiàn)的次數(shù)以及選取內(nèi)容出現(xiàn)在第幾次也作為定位信息存儲(chǔ)到服務(wù)器中,當(dāng)新結(jié)構(gòu)化文檔中定位的選取內(nèi)容與定位信息中的選取內(nèi)容不相同時(shí),嘗試重新定位,重新定位結(jié)構(gòu)化文檔選取內(nèi)容的方法其步驟如下:定位信息讀取步驟,從服務(wù)器取得定位信息;檢索步驟,在新結(jié)構(gòu)化文檔的參照節(jié)點(diǎn)中檢索定位信息中的選取內(nèi)容,記錄其出現(xiàn)的次數(shù);次數(shù)比較步驟,判斷檢索所得的次數(shù)與定位信息中選取內(nèi)容在參照節(jié)點(diǎn)中出現(xiàn)的次數(shù)是否相等,如果不相等,提醒用戶新結(jié)構(gòu)化文檔內(nèi)容發(fā)生變化,無法重新定位,如果相等,則繼續(xù)運(yùn)行;重新定位步驟,根據(jù)定位信息中選取內(nèi)容出現(xiàn)在第幾次重新定位選取內(nèi)容。
[0015]其中,定位信息讀取步驟從服務(wù)器取得定位信息包括參照節(jié)點(diǎn)、選取內(nèi)容、選取內(nèi)容起始位置的偏移量、選取內(nèi)容結(jié)束位置的偏移量、選取內(nèi)容在參照節(jié)點(diǎn)中出現(xiàn)的次數(shù)以及選取內(nèi)容出現(xiàn)在第幾次。
[0016]如上所述的選取內(nèi)容的重新定位方法,其中還包括更新步驟,計(jì)算重新定位的選取內(nèi)容的起始位置和結(jié)束位置的偏移量,并更新到服務(wù)器中已保存的定位信息中。.[0017]本發(fā)明為解決上述技術(shù)問題采用以下技術(shù)方案:
[0018]一種存儲(chǔ)結(jié)構(gòu)化文檔選取內(nèi)容的裝置,其包括:計(jì)算模塊,該模塊以一個(gè)或者多個(gè)任意節(jié)點(diǎn)為參照節(jié)點(diǎn),計(jì)算出用戶選取內(nèi)容起始位置的偏移量和結(jié)束位置的偏移量;存儲(chǔ)模塊,該模塊將參照節(jié)點(diǎn)、選取內(nèi)容起始位置的偏移量和選取內(nèi)容結(jié)束位置的偏移量存儲(chǔ)到服務(wù)器。
[0019]如上所述的存儲(chǔ)結(jié)構(gòu)化文檔選取內(nèi)容的裝置,其中存儲(chǔ)模塊還存儲(chǔ)選取內(nèi)容。
[0020]如上所述的存儲(chǔ)結(jié)構(gòu)化文檔選取內(nèi)容的方法,其中參照節(jié)點(diǎn)為結(jié)構(gòu)化文檔正文的根節(jié)點(diǎn)。
[0021]如上所述的存儲(chǔ)結(jié)構(gòu)化文檔選取內(nèi)容的裝置,其中存儲(chǔ)模塊還存儲(chǔ)統(tǒng)一資源定位符。
[0022]如上所述的存儲(chǔ)結(jié)構(gòu)化文檔選取內(nèi)容的裝置,其中計(jì)算模塊包括如下子模塊,起始位置的內(nèi)容長(zhǎng)度計(jì)算模塊,該模塊計(jì)算選取內(nèi)容起始位置與最近文檔節(jié)點(diǎn)之間的內(nèi)容長(zhǎng)度;遍歷模塊,該模塊從參照節(jié)點(diǎn)開始,遍歷最近文檔節(jié)點(diǎn)之前的每個(gè)節(jié)點(diǎn),并判斷節(jié)點(diǎn)標(biāo)簽是否是特殊標(biāo)簽表中的標(biāo)簽,如果是,將表中標(biāo)簽對(duì)應(yīng)的值作為節(jié)點(diǎn)中內(nèi)容的長(zhǎng)度,如果不是,取得節(jié)點(diǎn)中內(nèi)容的長(zhǎng)度;最近文檔節(jié)點(diǎn)偏移量計(jì)算模塊,該模塊將最近文檔節(jié)點(diǎn)之前每個(gè)節(jié)點(diǎn)中內(nèi)容的長(zhǎng)度進(jìn)行累加,得到最近文檔節(jié)點(diǎn)的偏移量;選取內(nèi)容起始位置偏移量計(jì)算模塊,該模塊將最近文檔節(jié)點(diǎn)的偏移量加上選取內(nèi)容起始位置與最近文檔節(jié)點(diǎn)之間的內(nèi)容長(zhǎng)度,得到選取內(nèi)容起始位置的偏移量。
[0023]如上所述的存儲(chǔ)結(jié)構(gòu)化文檔選取內(nèi)容的裝置,其中計(jì)算模塊包括如下子模塊,結(jié)束位置的內(nèi)容長(zhǎng)度計(jì)算模塊,該模塊計(jì)算出選取內(nèi)容結(jié)束位置與最近文檔節(jié)點(diǎn)之間的內(nèi)容長(zhǎng)度;遍歷模塊,該模塊從參照節(jié)點(diǎn)開始,遍歷最近文檔節(jié)點(diǎn)之前的每個(gè)節(jié)點(diǎn),并判斷節(jié)點(diǎn)標(biāo)簽是否是特殊標(biāo)簽表中的標(biāo)簽,如果是,將表中標(biāo)簽對(duì)應(yīng)的值作為節(jié)點(diǎn)中內(nèi)容的長(zhǎng)度,如果不是,取得節(jié)點(diǎn)中內(nèi)容的長(zhǎng)度;節(jié)點(diǎn)偏移量計(jì)算模塊,該模塊將最近文檔節(jié)點(diǎn)之前每個(gè)節(jié)點(diǎn)中內(nèi)容的長(zhǎng)度進(jìn)行累加,得到最近文檔節(jié)點(diǎn)的偏移量;結(jié)束位置的偏移量計(jì)算步驟,將最近文檔節(jié)點(diǎn)的偏移量加上選取內(nèi)容結(jié)束位置與最近文檔節(jié)點(diǎn)之間的內(nèi)容長(zhǎng)度,得到選取內(nèi)容結(jié)束位置的偏移量。
[0024]一種定位結(jié)構(gòu)化文檔選取內(nèi)容的裝置,包括如下模塊:輸入模塊,該模塊從服務(wù)器讀取定位信息;定位模塊,該模塊根據(jù)定位信息在新結(jié)構(gòu)化文檔中定位選取內(nèi)容。
[0025]如上所述的定位結(jié)構(gòu)化文檔選取內(nèi)容的裝置,其特征在于,輸入模塊讀取的定位信息包括參照節(jié)點(diǎn)、用戶選取內(nèi)容起始位置的偏移量和結(jié)束位置的偏移量。
[0026]如上所述的定位結(jié)構(gòu)化文檔選取內(nèi)容的裝置,其中定位模塊包括,遍歷模塊,該模塊遍歷參照新結(jié)構(gòu)化文檔節(jié)點(diǎn)中的子節(jié)點(diǎn),每經(jīng)過一個(gè)節(jié)點(diǎn),判斷節(jié)點(diǎn)標(biāo)簽是否是特殊標(biāo)簽表中的標(biāo)簽,如果是,將表中標(biāo)簽對(duì)應(yīng)的值作為節(jié)點(diǎn)中內(nèi)容的長(zhǎng)度,如果不是,取得節(jié)點(diǎn)中內(nèi)容的長(zhǎng)度,并將節(jié)點(diǎn)中內(nèi)容的長(zhǎng)度進(jìn)行累加;內(nèi)容長(zhǎng)度獲取模塊,該模塊當(dāng)累加值第一次大于或者等于選取內(nèi)容起始位置的偏移量時(shí),獲取該節(jié)點(diǎn)前面一個(gè)最近文檔節(jié)點(diǎn)的累加值,將選取內(nèi)容起始位置的偏移量減去最近文檔節(jié)點(diǎn)的累加值得到選取內(nèi)容起始位置與最近文檔節(jié)點(diǎn)之間的內(nèi)容長(zhǎng)度;起始位置確定模塊,該模塊根據(jù)所述內(nèi)容長(zhǎng)度得到選取內(nèi)容起始位置;內(nèi)容長(zhǎng)度確定模塊,該模塊將累加的值第一次大于或者等于選取內(nèi)容結(jié)束位置的偏移量時(shí),獲取該節(jié)點(diǎn)前面一個(gè)最近文檔節(jié)點(diǎn)的累加值,將選取內(nèi)容結(jié)束位置的偏移量減去最近文檔節(jié)點(diǎn)的累加值得到選取內(nèi)容結(jié)束位置與最近文檔節(jié)點(diǎn)之間的內(nèi)容長(zhǎng)度;選取內(nèi)容結(jié)束位置確定模塊,該模塊根據(jù)所述內(nèi)容長(zhǎng)度得到選取內(nèi)容結(jié)束位置;選取內(nèi)容定位模塊,該模塊根據(jù)選取內(nèi)容起始位置和選取內(nèi)容結(jié)束位置定位選取內(nèi)容。
[0027]—種重新定位結(jié)構(gòu)化文檔選取內(nèi)容的裝置,包括:定位信息讀取模塊,該模塊從服務(wù)器取得定位信息;檢索模塊,該模塊在新結(jié)構(gòu)化文檔的參照節(jié)點(diǎn)中檢索定位信息中的選取內(nèi)容,記錄其出現(xiàn)的次數(shù);次數(shù)比較模塊,該模塊判斷檢索所得的次數(shù)與定位信息中選取內(nèi)容在參照節(jié)點(diǎn)中出現(xiàn)的次數(shù)是否相等,如果不相等,提醒用戶新結(jié)構(gòu)化文檔內(nèi)容發(fā)生變化,無法重新定位,如果相等,則繼續(xù)運(yùn)行;重新定位模塊,該模塊根據(jù)定位信息中選取內(nèi)容出現(xiàn)在第幾次重新定位選取內(nèi)容。
[0028]如上所述的選取內(nèi)容的重新定位裝置,其中定位信息讀取模塊從服務(wù)器取得定位信息包括參照節(jié)點(diǎn)、選取內(nèi)容、選取內(nèi)容起始位置的偏移量、選取內(nèi)容結(jié)束位置的偏移量、選取內(nèi)容在參照節(jié)點(diǎn)中出現(xiàn)的次數(shù)以及選取內(nèi)容出現(xiàn)在第幾次。
[0029]如上所述的選取內(nèi)容的重新定位裝置,其中還包括更新模塊,該模塊計(jì)算重新定位的選取內(nèi)容的起始位置和結(jié)束位置的偏移量,并更新到服務(wù)器中已保存的定位信息中。
[0030]本專利中所述選取內(nèi)容,可以為文字、視頻或者圖片等。
[0031]本發(fā)明采用以上技術(shù)方案與現(xiàn)有技術(shù)相比,全面提高了實(shí)現(xiàn)的通用性和定位的準(zhǔn)確性。一方面,全面提高了實(shí)現(xiàn)的通用性,無論移動(dòng)終端、通用計(jì)算機(jī)等計(jì)算設(shè)備對(duì)于結(jié)構(gòu)化文檔結(jié)構(gòu)的解析如何不同,都可以精確穩(wěn)定地定位,并且可以有效克服不同瀏覽器間對(duì)html文檔解析的差異性。另一方面,全面提高了定位的準(zhǔn)確性,結(jié)構(gòu)化文檔的文檔結(jié)構(gòu)中增加或減少特殊標(biāo)簽表中長(zhǎng)度為零的標(biāo)簽時(shí),不影響定位,并且結(jié)構(gòu)化文檔內(nèi)容有不涉及選取內(nèi)容的改變時(shí),可以智能地重新定位。
【專利附圖】

【附圖說明】
[0032]從對(duì)說明本申請(qǐng)的主旨及其使用的優(yōu)選實(shí)施例和附圖的以下描述來看,本申請(qǐng)的以上和其它目的、特點(diǎn)和優(yōu)點(diǎn)將是顯而易見的,在附圖中:
[0033]圖1是存儲(chǔ)結(jié)構(gòu)化文檔選取內(nèi)容方法的流程圖;
[0034]圖2是定位結(jié)構(gòu)化文檔選取內(nèi)容方法的流程圖;
[0035]圖3是重新定位結(jié)構(gòu)化文檔選取內(nèi)容方法的流程圖;
[0036]圖4是存儲(chǔ)結(jié)構(gòu)化文檔選取內(nèi)容裝置的結(jié)構(gòu)圖;
[0037]圖5是定位結(jié)構(gòu)化文檔選取內(nèi)容裝置的結(jié)構(gòu)圖;
[0038]圖6是重新定位結(jié)構(gòu)化文檔選取內(nèi)容裝置的結(jié)構(gòu)圖;
[0039]圖7是存儲(chǔ)和定位選取內(nèi)容實(shí)施例的流程圖。
【具體實(shí)施方式】
[0040]下面結(jié)合附圖對(duì)本發(fā)明的技術(shù)方案做進(jìn)一步的詳細(xì)說明:
[0041]圖1是存儲(chǔ)結(jié)構(gòu)化文檔選取內(nèi)容方法的流程圖,包括如下步驟:計(jì)算步驟,以結(jié)構(gòu)化文檔正文的根節(jié)點(diǎn)為參照節(jié)點(diǎn),計(jì)算出用戶選取內(nèi)容起始位置的偏移量和結(jié)束位置的偏移量;其包括,起始位置的內(nèi)容長(zhǎng)度計(jì)算步驟,計(jì)算選取內(nèi)容起始位置與最近文檔節(jié)點(diǎn)之間的內(nèi)容長(zhǎng)度;遍歷步驟,從參照節(jié)點(diǎn)開始,遍歷最近文檔節(jié)點(diǎn)之前的每個(gè)節(jié)點(diǎn),并判斷節(jié)點(diǎn)標(biāo)簽是否是特殊標(biāo)簽表中的標(biāo)簽,如果是,將表中標(biāo)簽對(duì)應(yīng)的值作為節(jié)點(diǎn)中內(nèi)容的長(zhǎng)度,如果不是,取得節(jié)點(diǎn)中內(nèi)容的長(zhǎng)度;最近文檔節(jié)點(diǎn)偏移量計(jì)算步驟,將最近文檔節(jié)點(diǎn)之前每個(gè)節(jié)點(diǎn)中內(nèi)容的長(zhǎng)度進(jìn)行累加,得到最近文檔節(jié)點(diǎn)的偏移量;選取內(nèi)容起始位置偏移量計(jì)算步驟,將最近文檔節(jié)點(diǎn)的偏移量加上選取內(nèi)容起始位置與最近文檔節(jié)點(diǎn)之間的內(nèi)容長(zhǎng)度,得到選取內(nèi)容起始位置的偏移量;結(jié)束位置的內(nèi)容長(zhǎng)度計(jì)算步驟,計(jì)算出選取內(nèi)容結(jié)束位置與最近文檔節(jié)點(diǎn)之間的內(nèi)容長(zhǎng)度;遍歷步驟,從參照節(jié)點(diǎn)開始,遍歷最近文檔節(jié)點(diǎn)之前的每個(gè)節(jié)點(diǎn),并判斷節(jié)點(diǎn)標(biāo)簽是否是特殊標(biāo)簽表中的標(biāo)簽,如果是,將表中標(biāo)簽對(duì)應(yīng)的值作為節(jié)點(diǎn)中內(nèi)容的長(zhǎng)度,如果不是,取得節(jié)點(diǎn)中內(nèi)容的長(zhǎng)度;節(jié)點(diǎn)偏移量計(jì)算步驟,將最近文檔節(jié)點(diǎn)之前每個(gè)節(jié)點(diǎn)中內(nèi)容的長(zhǎng)度進(jìn)行累加,得到最近文檔節(jié)點(diǎn)的偏移量;結(jié)束位置的偏移量計(jì)算步驟,將最近文檔節(jié)點(diǎn)的偏移量加上選取內(nèi)容結(jié)束位置與最近文檔節(jié)點(diǎn)之間的內(nèi)容長(zhǎng)度,得到選取內(nèi)容結(jié)束位置的偏移量。存儲(chǔ)步驟,將結(jié)構(gòu)化文檔統(tǒng)一資源定位符、參照節(jié)點(diǎn)、選取內(nèi)容、選取內(nèi)容起始位置的偏移量和選取內(nèi)容結(jié)束位置的偏移量存儲(chǔ)到服務(wù)器。
[0042]圖2是定位結(jié)構(gòu)化文檔選取內(nèi)容方法的流程圖,包括如下步驟:輸入步驟,從服務(wù)器讀取參照節(jié)點(diǎn)、用戶選取內(nèi)容起始位置的偏移量和結(jié)束位置的偏移量等定位信息;定位步驟,根據(jù)定位信息在新結(jié)構(gòu)化文檔中定位選取內(nèi)容,其包括遍歷步驟,在新結(jié)構(gòu)化文檔中,遍歷參照節(jié)點(diǎn)中的子節(jié)點(diǎn),每經(jīng)過一個(gè)節(jié)點(diǎn),判斷節(jié)點(diǎn)標(biāo)簽是否是特殊標(biāo)簽表中的標(biāo)簽,如果是,將表中標(biāo)簽對(duì)應(yīng)的值作為節(jié)點(diǎn)中內(nèi)容的長(zhǎng)度,如果不是,取得節(jié)點(diǎn)中內(nèi)容的長(zhǎng)度,并將節(jié)點(diǎn)中內(nèi)容的長(zhǎng)度進(jìn)行累加;內(nèi)容長(zhǎng)度獲取步驟,當(dāng)累加值第一次大于或者等于選取內(nèi)容起始位置的偏移量時(shí),獲取該節(jié)點(diǎn)前面一個(gè)最近文檔節(jié)點(diǎn)的累加值,將選取內(nèi)容起始位置的偏移量減去最近文檔節(jié)點(diǎn)的累加值得到選取內(nèi)容起始位置與最近文檔節(jié)點(diǎn)之間的內(nèi)容長(zhǎng)度;起始位置確定步驟,根據(jù)所述內(nèi)容長(zhǎng)度得到選取內(nèi)容起始位置;內(nèi)容長(zhǎng)度確定步驟,將累加的值第一次大于或者等于選取內(nèi)容結(jié)束位置的偏移量時(shí),獲取該節(jié)點(diǎn)前面一個(gè)最近文檔節(jié)點(diǎn)的累加值,將選取內(nèi)容結(jié)束位置的偏移量減去最近文檔節(jié)點(diǎn)的累加值得到選取內(nèi)容結(jié)束位置與最近文檔節(jié)點(diǎn)之間的內(nèi)容長(zhǎng)度;選取內(nèi)容結(jié)束位置確定步驟,根據(jù)所述內(nèi)容長(zhǎng)度得到選取內(nèi)容結(jié)束位置;選取內(nèi)容定位步驟,根據(jù)選取內(nèi)容起始位置和選取內(nèi)容結(jié)束位置定位選取內(nèi)容。
[0043]圖3是重新定位結(jié)構(gòu)化文檔選取內(nèi)容方法的流程圖,包括如下步驟:其步驟如下:定位信息讀取步驟,從服務(wù)器取得參照節(jié)點(diǎn)、選取內(nèi)容、選取內(nèi)容起始位置的偏移量、選取內(nèi)容結(jié)束位置的偏移量、選取內(nèi)容在參照節(jié)點(diǎn)中出現(xiàn)的次數(shù)以及選取內(nèi)容出現(xiàn)在第幾次等信息;檢索步驟,在新結(jié)構(gòu)化文檔的參照節(jié)點(diǎn)中檢索定位信息中的選取內(nèi)容,記錄其出現(xiàn)的次數(shù);次數(shù)比較步驟,判斷檢索所得的次數(shù)與定位信息中選取內(nèi)容在參照節(jié)點(diǎn)中出現(xiàn)的次數(shù)是否相等,如果不相等,提醒用戶新結(jié)構(gòu)化文檔內(nèi)容發(fā)生變化,無法重新定位,如果相等,則繼續(xù)運(yùn)行;重新定位步驟,根據(jù)定位信息中選取內(nèi)容出現(xiàn)在第幾次重新定位選取內(nèi)容;更新步驟,計(jì)算重新定位的選取內(nèi)容的起始位置和結(jié)束位置的偏移量,并更新到服務(wù)器中已保存的定位信息中。
[0044]圖4是存儲(chǔ)結(jié)構(gòu)化文檔選取內(nèi)容裝置的結(jié)構(gòu)圖,該存儲(chǔ)結(jié)構(gòu)化文檔選取內(nèi)容裝置包括,計(jì)算模塊,該模塊以結(jié)構(gòu)化文檔正文的根節(jié)點(diǎn)為參照節(jié)點(diǎn),計(jì)算出用戶選取內(nèi)容起始位置的偏移量和結(jié)束位置的偏移量;存儲(chǔ)模塊,該模塊將統(tǒng)一資源定位符、參照節(jié)點(diǎn)、選取內(nèi)容、選取內(nèi)容起始位置的偏移量和選取內(nèi)容結(jié)束位置的偏移量存儲(chǔ)到服務(wù)器。計(jì)算模塊包括如下子模塊,起始位置的內(nèi)容長(zhǎng)度計(jì)算模塊,該模塊計(jì)算選取內(nèi)容起始位置與最近文檔節(jié)點(diǎn)之間的內(nèi)容長(zhǎng)度;第一遍歷模塊,該模塊從參照節(jié)點(diǎn)開始,遍歷最近文檔節(jié)點(diǎn)之前的每個(gè)節(jié)點(diǎn),并判斷節(jié)點(diǎn)標(biāo)簽是否是特殊標(biāo)簽表中的標(biāo)簽,如果是,將表中標(biāo)簽對(duì)應(yīng)的值作為節(jié)點(diǎn)中內(nèi)容的長(zhǎng)度,如果不是,取得節(jié)點(diǎn)中內(nèi)容的長(zhǎng)度;最近文檔節(jié)點(diǎn)偏移量計(jì)算模塊,該模塊將最近文檔節(jié)點(diǎn)之前每個(gè)節(jié)點(diǎn)中內(nèi)容的長(zhǎng)度進(jìn)行累加,得到最近文檔節(jié)點(diǎn)的偏移量;選取內(nèi)容起始位置偏移量計(jì)算模塊,該模塊將最近文檔節(jié)點(diǎn)的偏移量加上選取內(nèi)容起始位置與最近文檔節(jié)點(diǎn)之間的內(nèi)容長(zhǎng)度,得到選取內(nèi)容起始位置的偏移量;結(jié)束位置的內(nèi)容長(zhǎng)度計(jì)算模塊,該模塊計(jì)算出選取內(nèi)容結(jié)束位置與最近文檔節(jié)點(diǎn)之間的內(nèi)容長(zhǎng)度;第二遍歷模塊,該模塊從參照節(jié)點(diǎn)開始,遍歷最近文檔節(jié)點(diǎn)之前的每個(gè)節(jié)點(diǎn),并判斷節(jié)點(diǎn)標(biāo)簽是否是特殊標(biāo)簽表中的標(biāo)簽,如果是,將表中標(biāo)簽對(duì)應(yīng)的值作為節(jié)點(diǎn)中內(nèi)容的長(zhǎng)度,如果不是,取得節(jié)點(diǎn)中內(nèi)容的長(zhǎng)度;節(jié)點(diǎn)偏移量計(jì)算模塊,該模塊將最近文檔節(jié)點(diǎn)之前每個(gè)節(jié)點(diǎn)中內(nèi)容的長(zhǎng)度進(jìn)行累加,得到最近文檔節(jié)點(diǎn)的偏移量;結(jié)束位置的偏移量計(jì)算模塊,將最近文檔節(jié)點(diǎn)的偏移量加上選取內(nèi)容結(jié)束位置與最近文檔節(jié)點(diǎn)之間的內(nèi)容長(zhǎng)度,得到選取內(nèi)容結(jié)束位置的偏移量。
[0045]圖5是定位結(jié)構(gòu)化文檔選取內(nèi)容裝置的結(jié)構(gòu)圖,該裝置包括如下模塊:輸入模塊,該模塊從服務(wù)器讀取參照節(jié)點(diǎn)、用戶選取內(nèi)容起始位置的偏移量和結(jié)束位置的偏移量等定位信息;定位模塊,該模塊根據(jù)定位信息在新結(jié)構(gòu)化文檔中定位選取內(nèi)容。定位模塊包括,遍歷模塊,該模塊遍歷參照新結(jié)構(gòu)化文檔節(jié)點(diǎn)中的子節(jié)點(diǎn),每經(jīng)過一個(gè)節(jié)點(diǎn),判斷節(jié)點(diǎn)標(biāo)簽是否是特殊標(biāo)簽表中的標(biāo)簽,如果是,將表中標(biāo)簽對(duì)應(yīng)的值作為節(jié)點(diǎn)中內(nèi)容的長(zhǎng)度,如果不是,取得節(jié)點(diǎn)中內(nèi)容的長(zhǎng)度,并將節(jié)點(diǎn)中內(nèi)容的長(zhǎng)度進(jìn)行累加;內(nèi)容長(zhǎng)度獲取模塊,該模塊當(dāng)累加值第一次大于或者等于選取內(nèi)容起始位置的偏移量時(shí),獲取該節(jié)點(diǎn)前面一個(gè)最近文檔節(jié)點(diǎn)的累加值,將選取內(nèi)容起始位置的偏移量減去最近文檔節(jié)點(diǎn)的累加值得到選取內(nèi)容起始位置與最近文檔節(jié)點(diǎn)之間的內(nèi)容長(zhǎng)度;起始位置確定模塊,該模塊根據(jù)所述內(nèi)容長(zhǎng)度得到選取內(nèi)容起始位置;內(nèi)容長(zhǎng)度確定模塊,該模塊將累加的值第一次大于或者等于選取內(nèi)容結(jié)束位置的偏移量時(shí),獲取該節(jié)點(diǎn)前面一個(gè)最近文檔節(jié)點(diǎn)的累加值,將選取內(nèi)容結(jié)束位置的偏移量減去最近文檔節(jié)點(diǎn)的累加值得到選取內(nèi)容結(jié)束位置與最近文檔節(jié)點(diǎn)之間的內(nèi)容長(zhǎng)度;選取內(nèi)容結(jié)束位置確定模塊,該模塊根據(jù)所述內(nèi)容長(zhǎng)度得到選取內(nèi)容結(jié)束位置;選取內(nèi)容定位模塊,該模塊根據(jù)選取內(nèi)容起始位置和選取內(nèi)容結(jié)束位置定位選取內(nèi)容。
[0046]圖6是重新定位結(jié)構(gòu)化文檔選取內(nèi)容裝置的結(jié)構(gòu)圖,該裝置包括:定位信息讀取模塊,該模塊從服務(wù)器取得參照節(jié)點(diǎn)、選取內(nèi)容、選取內(nèi)容起始位置的偏移量、選取內(nèi)容結(jié)束位置的偏移量、選取內(nèi)容在參照節(jié)點(diǎn)中出現(xiàn)的次數(shù)以及選取內(nèi)容出現(xiàn)在第幾次等定位信息;檢索模塊,該模塊在新結(jié)構(gòu)化文檔的參照節(jié)點(diǎn)中檢索定位信息中的選取內(nèi)容,記錄其出現(xiàn)的次數(shù);次數(shù)比較模塊,該模塊判斷檢索所得的次數(shù)與定位信息中選取內(nèi)容在參照節(jié)點(diǎn)中出現(xiàn)的次數(shù)是否相等,如果不相等,提醒用戶新結(jié)構(gòu)化文檔內(nèi)容發(fā)生變化,無法重新定位,如果相等,則繼續(xù)運(yùn)行;重新定位模塊,該模塊根據(jù)定位信息中選取內(nèi)容出現(xiàn)在第幾次重新定位選取內(nèi)容;更新模塊,該模塊計(jì)算重新定位的選取內(nèi)容的起始位置和結(jié)束位置的偏移量,并更新到服務(wù)器中已保存的定位信息中。
[0047]如圖7所示,本發(fā)明公開了一種存儲(chǔ)和定位網(wǎng)頁等結(jié)構(gòu)化文檔選取內(nèi)容的方法,具體分以下幾步:步驟1),用戶訪問網(wǎng)頁,選取內(nèi)容;步驟2),以網(wǎng)頁正文的根節(jié)點(diǎn)為參照節(jié)點(diǎn),計(jì)算出選取內(nèi)容起始位置和結(jié)束位置的偏移量;步驟3),將定位信息保存到服務(wù)器;步驟4),用戶重新訪問網(wǎng)頁;步驟5),從服務(wù)器上取得定位信息;步驟6),根據(jù)定位信息中的偏移量在新網(wǎng)頁上定位選取內(nèi)容;步驟7),判斷定位所得的選取內(nèi)容與定位信息中的選取內(nèi)容是否相同,如果相同,則定位結(jié)束,如果不相同,則執(zhí)行步驟8);步驟8),在新網(wǎng)頁的參照節(jié)點(diǎn)中檢索定位信息中的選取內(nèi)容,記錄其出現(xiàn)的次數(shù);步驟9),判斷檢索所得的次數(shù)與定位信息中選取內(nèi)容在參照節(jié)點(diǎn)中出現(xiàn)的次數(shù)是否相等,如果不等,則提醒用戶新網(wǎng)頁內(nèi)容發(fā)生變 化,無法重新定位,定位結(jié)束,如果相等,則執(zhí)行步驟10),步驟10),根據(jù)定位信息中選取內(nèi)容出現(xiàn)在第幾次重新定位選取內(nèi)容;步驟11),計(jì)算重新定位的選取內(nèi)容的起始位置和結(jié)束位置的偏移量,并更新到服務(wù)器中已保存的定位信息中,結(jié)束定位。
[0048]以下實(shí)施例中,以字節(jié)作為內(nèi)容偏移的單位,一個(gè)中文字符長(zhǎng)度為兩個(gè)字節(jié),一個(gè)英文字符長(zhǎng)度為一個(gè)字節(jié);
[0049]假設(shè)某一網(wǎng)頁url 為 http://xxxxx.xxx, html 代碼如下:
[0050]<html>
[0051]〈body〉
[0052]〈script type =,,text/javascript,,>
[0053]Document, write <hl>Hello World ! </hl>,,)
[0054]〈/script〉
[0055]<p id = 1>在第一個(gè)有效節(jié)點(diǎn)中</p>
[0056]<i mg src =,,/i/eg_mouse.jpg,,width = ” 128,,height = ” 128,,>
[0057]<p id = 2>〈i>在第二個(gè)有效節(jié)點(diǎn)的第一子節(jié)點(diǎn)中</i>〈/p>
[0058]<p id = 3>This is 第三個(gè)有效〈/p>
[0059]<p id = 4>節(jié)點(diǎn)在第四個(gè)有效節(jié)點(diǎn)</p>
[0060]〈/body〉
[0061]</html>[0062]用戶選取內(nèi)容為id為3的P節(jié)點(diǎn)中的“有效”以及id為4的P節(jié)點(diǎn)中開頭的“節(jié)點(diǎn)”四個(gè)字;則系統(tǒng)首先將該網(wǎng)頁url “http://xxxxx.xxx”、參照節(jié)點(diǎn)“〈body〉”、選耳又內(nèi)容“有效節(jié)點(diǎn)”、選取內(nèi)容起始位置的偏移量、選取內(nèi)容結(jié)束位置的偏移量、選取內(nèi)容在參照節(jié)點(diǎn)中出現(xiàn)的次數(shù)“4”以及選取內(nèi)容出現(xiàn)在第幾次“3”作為定位信息保存到服務(wù)器,其中計(jì)算用戶選取內(nèi)容起始位置和結(jié)束位置的偏移量的步驟如下:步驟I),計(jì)算出選取內(nèi)容“有效節(jié)點(diǎn)”起始位置與最近的文檔節(jié)點(diǎn)(即DOM節(jié)點(diǎn),下同)id為3的P節(jié)點(diǎn)之間的內(nèi)容“This is第三個(gè)”的長(zhǎng)度為14 ;步驟2),從參照節(jié)點(diǎn)〈body〉開始,遍歷id為3的p節(jié)點(diǎn)之前的每個(gè)節(jié)點(diǎn),并判斷節(jié)點(diǎn)標(biāo)簽是否是特殊標(biāo)簽表中的標(biāo)簽,如果是,將表中標(biāo)簽對(duì)應(yīng)的值作為節(jié)點(diǎn)中內(nèi)容的長(zhǎng)度,如果不是,取得節(jié)點(diǎn)中內(nèi)容的長(zhǎng)度:第一個(gè)節(jié)點(diǎn)是〈script〉節(jié)點(diǎn),〈script〉標(biāo)簽是特殊標(biāo)簽表內(nèi)的標(biāo)簽,其對(duì)應(yīng)值為0,則取該節(jié)點(diǎn)內(nèi)容長(zhǎng)度為O ;第二個(gè)節(jié)點(diǎn)是id為I的P節(jié)點(diǎn),
不是特殊標(biāo)簽表內(nèi)的標(biāo)簽,其節(jié)點(diǎn)內(nèi)容“在第一個(gè)有效節(jié)點(diǎn)中”長(zhǎng)度為18 ;第三個(gè)節(jié)點(diǎn)是<img>節(jié)點(diǎn),<img>標(biāo)簽是特殊標(biāo)簽表內(nèi)的標(biāo)簽,其長(zhǎng)度為1,則取該節(jié)點(diǎn)長(zhǎng)度為I ;第四個(gè)節(jié)點(diǎn)是id為2的P節(jié)點(diǎn),
不是特殊標(biāo)簽表內(nèi)的標(biāo)簽,其節(jié)點(diǎn)內(nèi)容長(zhǎng)度為O ;第五個(gè)節(jié)點(diǎn)是id為2的P節(jié)點(diǎn)的子節(jié)點(diǎn)<i>,<i>不是特殊標(biāo)簽表內(nèi)的標(biāo)簽,其節(jié)點(diǎn)內(nèi)容“在第二個(gè)有效節(jié)點(diǎn)的第一子節(jié)點(diǎn)中”長(zhǎng)度為30 ;步驟3),將id為3的P節(jié)點(diǎn)之前每個(gè)節(jié)點(diǎn)中內(nèi)容的長(zhǎng)度進(jìn)行累加,即0+18+1+0+30,得到id為3的P節(jié)點(diǎn)的偏移量為49 ;步驟4),將id為3的P節(jié)點(diǎn)的偏移量49加上選取內(nèi)容起始位置與id為3的P節(jié)點(diǎn)之間的內(nèi)容長(zhǎng)度14,得到選取內(nèi)容起始位置的偏移量63 ;步驟5),計(jì)算出選取內(nèi)容“有效節(jié)點(diǎn)”結(jié)束位置與最近的DOM節(jié)點(diǎn)id為4的P節(jié)點(diǎn)之間的內(nèi)容“節(jié)點(diǎn)”長(zhǎng)度為4 ;步驟6),從參照節(jié)點(diǎn)開始,遍歷id為4的P節(jié)點(diǎn)之前的每個(gè)節(jié)點(diǎn),并判斷節(jié)點(diǎn)標(biāo)簽是否是特殊標(biāo)簽表中的標(biāo)簽,如果是,將表中標(biāo)簽對(duì)應(yīng)的值作為節(jié)點(diǎn)中內(nèi)容的長(zhǎng)度,如果不是,取得節(jié)點(diǎn)中內(nèi)容的長(zhǎng)度:第一個(gè)節(jié)點(diǎn)是〈script〉節(jié)點(diǎn),〈script〉標(biāo)簽是特殊標(biāo)簽表內(nèi)的標(biāo)簽,其對(duì)應(yīng)值為0,則取該節(jié)點(diǎn)內(nèi)容長(zhǎng)度為O ;第二個(gè)節(jié)點(diǎn)是id為I的P節(jié)點(diǎn),
不是特殊標(biāo)簽表內(nèi)的標(biāo)簽,其節(jié)點(diǎn)內(nèi)容“在第一個(gè)有效節(jié)點(diǎn)中”長(zhǎng)度為18 ;第三個(gè)節(jié)點(diǎn)是<img>節(jié)點(diǎn),<img>標(biāo)簽是特殊標(biāo)簽表內(nèi)的標(biāo)簽,其長(zhǎng)度為1,則取該節(jié)點(diǎn)長(zhǎng)度為I ;第四個(gè)節(jié)點(diǎn)是id為2的P節(jié)點(diǎn),
不是特殊標(biāo)簽表內(nèi)的標(biāo)簽,其節(jié)點(diǎn)內(nèi)容長(zhǎng)度為O ;第五個(gè)節(jié)點(diǎn)是id為2的P節(jié)點(diǎn)的子節(jié)點(diǎn)<i>, <i>不是特殊標(biāo)簽表內(nèi)的標(biāo)簽,其節(jié)點(diǎn)內(nèi)容“在第二個(gè)有效節(jié)點(diǎn)的第一子節(jié)點(diǎn)中”長(zhǎng)度為30 ;第六個(gè)節(jié)點(diǎn)是id為3的P節(jié)點(diǎn),
不是特殊標(biāo)簽表內(nèi)的標(biāo)簽,其節(jié)點(diǎn)內(nèi)容“This is第三個(gè)有效”的長(zhǎng)度為18 ;步驟7),將id為4的P節(jié)點(diǎn)之前每個(gè)節(jié)點(diǎn)中內(nèi)容的長(zhǎng)度進(jìn)行累力口,即0+18+1+0+30+18,得到id為4的P節(jié)點(diǎn)的偏移量67 ;步驟8),將id為4的p節(jié)點(diǎn)的偏移量67加上選取內(nèi)容結(jié)束位置與id為4的P節(jié)點(diǎn)之間的內(nèi)容長(zhǎng)度4,得到選取內(nèi)容結(jié)束位置的偏移量71。
[0063]用戶需要再現(xiàn)選取內(nèi)容“有效內(nèi)容”時(shí),首先從服務(wù)器中取得定位信息,并根據(jù)定位信息在新網(wǎng)頁中定位選取內(nèi)容,其步驟如下:步驟I),從定位信息中取得以下信息:網(wǎng)頁url “http://xxxxx.xxx”、參照節(jié)點(diǎn)“〈body〉”、選取內(nèi)容“有效節(jié)點(diǎn)”、選取內(nèi)容起始位置的偏移量63和選取內(nèi)容結(jié)束位置的偏移量71 ;步驟2),在打開的新網(wǎng)頁“http://XXXXX.中,遍歷參照節(jié)點(diǎn)“〈body〉”中的子節(jié)點(diǎn),每經(jīng)過一個(gè)節(jié)點(diǎn),判斷節(jié)點(diǎn)標(biāo)簽是否是特殊標(biāo)簽表中的標(biāo)簽,如果是,將表中標(biāo)簽對(duì)應(yīng)的值作為節(jié)點(diǎn)中內(nèi)容的長(zhǎng)度,如果不是,取得節(jié)點(diǎn)中內(nèi)容的長(zhǎng)度,并將節(jié)點(diǎn)中內(nèi)容的長(zhǎng)度進(jìn)行累加:第一個(gè)節(jié)點(diǎn)是〈script〉節(jié)點(diǎn),〈script〉標(biāo)簽是特殊標(biāo)簽表內(nèi)的標(biāo)簽,其對(duì)應(yīng)值為O,則取該節(jié)點(diǎn)內(nèi)容長(zhǎng)度為O,累加長(zhǎng)度為O ;第二個(gè)節(jié)點(diǎn)是id為I的P節(jié)點(diǎn),〈P〉不是特殊標(biāo)簽表內(nèi)的標(biāo)簽,其節(jié)點(diǎn)內(nèi)容“在第一個(gè)有效節(jié)點(diǎn)中”長(zhǎng)度為18,累加長(zhǎng)度為18 ;第三個(gè)節(jié)點(diǎn)是<img>節(jié)點(diǎn),<img>標(biāo)簽是特殊標(biāo)簽表內(nèi)的標(biāo)簽,其長(zhǎng)度為I,則取該節(jié)點(diǎn)長(zhǎng)度為I,累加長(zhǎng)度為19 ;第四個(gè)節(jié)點(diǎn)是id為2的P節(jié)點(diǎn),
不是特殊標(biāo)簽表內(nèi)的標(biāo)簽,其節(jié)點(diǎn)內(nèi)容長(zhǎng)度為O,累加長(zhǎng)度為19 ;第五個(gè)節(jié)點(diǎn)是id為2的P節(jié)點(diǎn)的子節(jié)點(diǎn)不是特殊標(biāo)簽表內(nèi)的標(biāo)簽,其節(jié)點(diǎn)內(nèi)容“在第二個(gè)有效節(jié)點(diǎn)的第一子節(jié)點(diǎn)中”長(zhǎng)度為30,累加長(zhǎng)度為49 ;第六個(gè)節(jié)點(diǎn)是id為3的P節(jié)點(diǎn),
不是特殊標(biāo)簽表內(nèi)的標(biāo)簽,其節(jié)點(diǎn)內(nèi)容“This is第三個(gè)有效”的長(zhǎng)度為18,累加長(zhǎng)度67 ;第七個(gè)節(jié)點(diǎn)是id為4的P節(jié)點(diǎn),
不是特殊標(biāo)簽表內(nèi)的標(biāo)簽,其節(jié)點(diǎn)內(nèi)容“節(jié)點(diǎn)在第四個(gè)有效節(jié)點(diǎn)”的長(zhǎng)度為20,累加長(zhǎng)度為87 ;步驟3),當(dāng)累加值第一次大于或者等于選取內(nèi)容起始位置的偏移量63時(shí),即在遍歷第六個(gè)節(jié)點(diǎn)的時(shí)候,獲取第五個(gè)節(jié)點(diǎn)的累加值49,將選取內(nèi)容起始位置的偏移量63減去第五個(gè)節(jié)點(diǎn)的累加值49得到選取內(nèi)容起始位置與第五個(gè)節(jié)點(diǎn)之間的內(nèi)容長(zhǎng)度14;步驟4),得到選取內(nèi)容起始位置;步驟5),將累加的值第一次大于或者等于選取內(nèi)容結(jié)束位置的偏移量71時(shí),即在遍歷第七個(gè)節(jié)點(diǎn)的時(shí)候,獲取第六個(gè)節(jié)點(diǎn)的累加值67,將選取內(nèi)容結(jié)束位置的偏移量71減去第六個(gè)節(jié)點(diǎn)的累加值67得到選取內(nèi)容起始位置與第六個(gè)節(jié)點(diǎn)之間的內(nèi)容長(zhǎng)度4 ;步驟6),得到選取內(nèi)容結(jié)束位置;步驟7),根據(jù)選取內(nèi)容起始位置和選取內(nèi)容結(jié)束位置定位到選取內(nèi)容“有效節(jié)點(diǎn)”。
[0064]假設(shè)網(wǎng)頁內(nèi)容發(fā)生變化,變化后html代碼如下:
[0065]<html>
[0066]〈body〉 [0067]〈script type =,,text/javascript,,>
[0068]Document, write (v <hl>Hello World ! </hl>,,)
[0069]〈/script〉
[0070]<p id = 1>第一個(gè)有效節(jié)點(diǎn)</p>
[0071]<img src =,,/i/eg_mouse.jpg,,width = ” 128,,height = ” 128,,>
[0072]<p id = 2>〈i>在第二個(gè)有效節(jié)點(diǎn)的第一子節(jié)點(diǎn)中</i>〈/p>
[0073]<p id = 3>This is 第三個(gè)有效〈/p>
[0074]<p id = 4>節(jié)點(diǎn)在第四個(gè)有效節(jié)點(diǎn)</p>
[0075]〈/body〉
[0076]</html>
[0077]此時(shí),用戶實(shí)用選取內(nèi)容起始位置的偏移量以及選取內(nèi)容結(jié)束位置的偏移量定位到的內(nèi)容為id為4的P節(jié)點(diǎn)中的“節(jié)點(diǎn)在第”,與定位信息中的選取內(nèi)容“有效節(jié)點(diǎn)”不同,則嘗試重新定位,其步驟如下:步驟I),從服務(wù)器取得定位信息:網(wǎng)頁url ^http: Z/xxxxx.Ml”、參照節(jié)點(diǎn)“〈body〉”、選取內(nèi)容“有效節(jié)點(diǎn)”、選取內(nèi)容起始位置的偏移量63、選取內(nèi)容結(jié)束位置的偏移量71、選取內(nèi)容在參照節(jié)點(diǎn)中出現(xiàn)的次數(shù)“4”以及選取內(nèi)容出現(xiàn)在第幾次“3”;步驟2),在打開的新網(wǎng)頁“http://xxxxx.XXX”的參照節(jié)點(diǎn)“〈body〉”中檢索選取內(nèi)容“有效節(jié)點(diǎn)”,發(fā)現(xiàn)總共出現(xiàn)了 4次;步驟3),計(jì)算機(jī)判斷檢索所得的次數(shù)4與定位信息中選取內(nèi)容在參照節(jié)點(diǎn)中出現(xiàn)的次數(shù)“3”相等;步驟4),將檢索中第3次出現(xiàn)的“有效節(jié)點(diǎn)”重新定位為選取內(nèi)容;步驟5),計(jì)算出重新定位的選取內(nèi)容的起始位置的偏移量為59,結(jié)束位置的偏移量為67,更新到服務(wù)器中已保存的定位信息中。
[0078]假設(shè)網(wǎng)頁內(nèi)容又發(fā)生變化,變化后html代碼如下:
[0079]<html>
[0080]〈body〉
[0081]〈script type =,,text/javascript,,>
[0082]Document, write <hl>Hello World ! </hl>,,)
[0083]〈/script〉
[0084]<p id = 1>第一個(gè)有效節(jié)點(diǎn)</p>
[0085]<img src =,,/i/eg_mouse.jpg,,width = ” 128,,height = ” 128,,>
[0086]<p id = 2><i>在第二個(gè)有節(jié)點(diǎn)的第一子節(jié)點(diǎn)中</i>〈/p>
[0087]<p id = 3>This is 第三個(gè)有效〈/p>
[0088]<p id = 4>節(jié)點(diǎn)在第四個(gè)有效節(jié)點(diǎn)</p>
[0089]〈/body〉 [0090]</html>
[0091]此時(shí),用戶實(shí)用選取內(nèi)容起始位置的偏移量以及選取內(nèi)容結(jié)束位置的偏移量定位到的內(nèi)容為id為4的P節(jié)點(diǎn)中的“點(diǎn)在第四”,與定位信息中的選取內(nèi)容“有效節(jié)點(diǎn)”不同,則嘗試重新定位,其步驟如下:步驟I),從服務(wù)器取得定位信息:網(wǎng)頁url ^http: Z/xxxxx.M2L”、參照節(jié)點(diǎn)“〈body〉”、選取內(nèi)容“有效節(jié)點(diǎn)”、選取內(nèi)容起始位置的偏移量63、選取內(nèi)容結(jié)束位置的偏移量71、選取內(nèi)容在參照節(jié)點(diǎn)中出現(xiàn)的次數(shù)“4”以及選取內(nèi)容出現(xiàn)在第幾次“3”;步驟2),在打開的新網(wǎng)頁“http://xxxxx.xxx”的參照節(jié)點(diǎn)“〈body〉”中檢索選取內(nèi)容“有效節(jié)點(diǎn)”,發(fā)現(xiàn)總共出現(xiàn)了 3次;步驟3),計(jì)算機(jī)判斷檢索所得的次數(shù)“3”與定位信息中選取內(nèi)容在參照節(jié)點(diǎn)中出現(xiàn)的次數(shù)“4”不相等,則提醒用戶新網(wǎng)頁內(nèi)容發(fā)生變化,無法重新定位。
[0092]以上對(duì)本發(fā)明所提供的存儲(chǔ)和定位網(wǎng)頁上選取內(nèi)容的方法與系統(tǒng)進(jìn)行了詳細(xì)介紹。說明書和權(quán)利要求中描述方法時(shí)用于指代各個(gè)步驟的編號(hào),除非特別指明或經(jīng)上下文能夠唯一確定之外,并不代表各個(gè)步驟的順序。本文中應(yīng)用了具體個(gè)例對(duì)本發(fā)明的原理及實(shí)施方式進(jìn)行了闡述,以上實(shí)施例的說明只是用于幫助理解本發(fā)明的方法及其核心思想。應(yīng)當(dāng)指出,對(duì)于本【技術(shù)領(lǐng)域】的普通技術(shù)人員來說,在不脫離本發(fā)明原理的前提下,還可以對(duì)本發(fā)明進(jìn)行若干改進(jìn)和修飾,這些改進(jìn)和修飾也落入本發(fā)明權(quán)利要求的保護(hù)范圍內(nèi)。
【權(quán)利要求】
1.一種存儲(chǔ)結(jié)構(gòu)化文檔選取內(nèi)容的方法,包括如下步驟: 計(jì)算步驟,以一個(gè)或者多個(gè)任意節(jié)點(diǎn)為參照節(jié)點(diǎn),計(jì)算出用戶選取內(nèi)容起始位置的偏移量和結(jié)束位置的偏移量; 存儲(chǔ)步驟,將參照節(jié)點(diǎn)、選取內(nèi)容起始位置的偏移量和選取內(nèi)容結(jié)束位置的偏移量存儲(chǔ)到服務(wù)器。
2.如權(quán)利要求1所述的存儲(chǔ)結(jié)構(gòu)化文檔選取內(nèi)容的方法,其中計(jì)算步驟包括如下子步驟, 起始位置的內(nèi)容長(zhǎng)度計(jì)算步驟,計(jì)算選取內(nèi)容起始位置與最近文檔節(jié)點(diǎn)之間的內(nèi)容長(zhǎng)度; 遍歷步驟,從參照節(jié)點(diǎn)開始,遍歷最近文檔節(jié)點(diǎn)之前的每個(gè)節(jié)點(diǎn),并判斷節(jié)點(diǎn)標(biāo)簽是否是特殊標(biāo)簽表中的標(biāo)簽,如果是,將表中標(biāo)簽對(duì)應(yīng)的值作為節(jié)點(diǎn)中內(nèi)容的長(zhǎng)度,如果不是,取得節(jié)點(diǎn)中內(nèi)容的長(zhǎng)度; 最近文檔節(jié)點(diǎn)偏 移量計(jì)算步驟,將最近文檔節(jié)點(diǎn)之前每個(gè)節(jié)點(diǎn)中內(nèi)容的長(zhǎng)度進(jìn)行累加,得到最近文檔節(jié)點(diǎn)的偏移量; 選取內(nèi)容起始位置偏移量計(jì)算步驟,將最近文檔節(jié)點(diǎn)的偏移量加上選取內(nèi)容起始位置與最近文檔節(jié)點(diǎn)之間的內(nèi)容長(zhǎng)度,得到選取內(nèi)容起始位置的偏移量。
3.如權(quán)利要求1所述的存儲(chǔ)結(jié)構(gòu)化文檔選取內(nèi)容的方法,其中計(jì)算步驟包括如下子步驟, 結(jié)束位置的內(nèi)容長(zhǎng)度計(jì)算步驟,計(jì)算出選取內(nèi)容結(jié)束位置與最近文檔節(jié)點(diǎn)之間的內(nèi)容長(zhǎng)度; 遍歷步驟,從參照節(jié)點(diǎn)開始,遍歷最近文檔節(jié)點(diǎn)之前的每個(gè)節(jié)點(diǎn),并判斷節(jié)點(diǎn)標(biāo)簽是否是特殊標(biāo)簽表中的標(biāo)簽,如果是,將表中標(biāo)簽對(duì)應(yīng)的值作為節(jié)點(diǎn)中內(nèi)容的長(zhǎng)度,如果不是,取得節(jié)點(diǎn)中內(nèi)容的長(zhǎng)度; 節(jié)點(diǎn)偏移量計(jì)算步驟,將最近文檔節(jié)點(diǎn)之前每個(gè)節(jié)點(diǎn)中內(nèi)容的長(zhǎng)度進(jìn)行累加,得到最近文檔節(jié)點(diǎn)的偏移量; 結(jié)束位置的偏移量計(jì)算步驟,將最近文檔節(jié)點(diǎn)的偏移量加上選取內(nèi)容結(jié)束位置與最近文檔節(jié)點(diǎn)之間的內(nèi)容長(zhǎng)度,得到選取內(nèi)容結(jié)束位置的偏移量。
4.一種定位結(jié)構(gòu)化文檔選取內(nèi)容的方法,包括如下步驟: 輸入步驟,從服務(wù)器讀取定位信息; 定位步驟,根據(jù)定位信息在新結(jié)構(gòu)化文檔中定位選取內(nèi)容。
5.如權(quán)利要求4所述的定位結(jié)構(gòu)化文檔選取內(nèi)容的方法,其中定位步驟包括, 遍歷步驟,在新結(jié)構(gòu)化文檔中,遍歷參照節(jié)點(diǎn)中的子節(jié)點(diǎn),每經(jīng)過一個(gè)節(jié)點(diǎn),判斷節(jié)點(diǎn)標(biāo)簽是否是特殊標(biāo)簽表中的標(biāo)簽,如果是,將表中標(biāo)簽對(duì)應(yīng)的值作為節(jié)點(diǎn)中內(nèi)容的長(zhǎng)度,如果不是,取得節(jié)點(diǎn)中內(nèi)容的長(zhǎng)度,并將節(jié)點(diǎn)中內(nèi)容的長(zhǎng)度進(jìn)行累加; 內(nèi)容長(zhǎng)度獲取步驟,當(dāng)累加值第一次大于或者等于選取內(nèi)容起始位置的偏移量時(shí),獲取該節(jié)點(diǎn)前面一個(gè)最近文檔節(jié)點(diǎn)的累加值,將選取內(nèi)容起始位置的偏移量減去最近文檔節(jié)點(diǎn)的累加值得到選取內(nèi)容起始位置與最近文檔節(jié)點(diǎn)之間的內(nèi)容長(zhǎng)度; 起始位置確定步驟,根據(jù)所述內(nèi)容長(zhǎng)度得到選取內(nèi)容起始位置; 內(nèi)容長(zhǎng)度確定步驟,將累加的值第一次大于或者等于選取內(nèi)容結(jié)束位置的偏移量時(shí),獲取該節(jié)點(diǎn)前面一個(gè)最近文檔節(jié)點(diǎn)的累加值,將選取內(nèi)容結(jié)束位置的偏移量減去最近文檔節(jié)點(diǎn)的累加值得到選取內(nèi)容結(jié)束位置與最近文檔節(jié)點(diǎn)之間的內(nèi)容長(zhǎng)度; 選取內(nèi)容結(jié)束位置確定步驟,根據(jù)所述內(nèi)容長(zhǎng)度得到選取內(nèi)容結(jié)束位置; 選取內(nèi)容定位步驟,根據(jù)選取內(nèi)容起始位置和選取內(nèi)容結(jié)束位置定位選取內(nèi)容。
6.一種重新定位結(jié)構(gòu)化文檔選取內(nèi)容的方法,包括如下步驟: 定位信息讀取步驟,從服務(wù)器取得定位信息; 檢索步驟,在新結(jié)構(gòu)化文檔的參照節(jié)點(diǎn)中檢索定位信息中的選取內(nèi)容,記錄其出現(xiàn)的次數(shù); 次數(shù)比較步驟,判斷檢索所得的次數(shù)與定位信息中選取內(nèi)容在參照節(jié)點(diǎn)中出現(xiàn)的次數(shù)是否相等,如果不相等,提醒用戶新結(jié)構(gòu)化文檔內(nèi)容發(fā)生變化,無法重新定位,如果相等,則繼續(xù)運(yùn)行; 重新定位步驟,根據(jù)定位信息中選取內(nèi)容出現(xiàn)在第幾次重新定位選取內(nèi)容。
7.如權(quán)利要求6所述的選取內(nèi)容的重新定位方法,其中定位信息讀取步驟從服務(wù)器取得定位信息包括參照節(jié)點(diǎn)、選取內(nèi)容、選取內(nèi)容起始位置的偏移量、選取內(nèi)容結(jié)束位置的偏移量、選取內(nèi)容在參照節(jié)點(diǎn)中出現(xiàn)的次數(shù)以及選取內(nèi)容出現(xiàn)在第幾次。
8.一種存儲(chǔ)結(jié)構(gòu)化文檔選取內(nèi)容的裝置,其包括: 計(jì)算模塊,該模塊以一個(gè)或者多個(gè)任意節(jié)點(diǎn)為參照節(jié)點(diǎn),計(jì)算出用戶選取內(nèi)容起始位置的偏移量和結(jié)束位置的偏移量; 存儲(chǔ)模塊,該模塊將參照節(jié)點(diǎn)、選取內(nèi)容起始位置的偏移量和選取內(nèi)容結(jié)束位置的偏移量存儲(chǔ)到服務(wù)器。
9.一種定位結(jié)構(gòu)化文檔選取內(nèi)容的裝置,其包括: 輸入模塊,該模塊從服務(wù)器讀取定位信息; 定位模塊,該模塊根據(jù)定位信息在新結(jié)構(gòu)化文檔中定位選取內(nèi)容。
10.一種重新定位結(jié)構(gòu)化文檔選取內(nèi)容的裝置,其包括: 定位信息讀取模塊,該模塊從服務(wù)器取得定位信息; 檢索模塊,該模塊在新結(jié)構(gòu)化文檔的參照節(jié)點(diǎn)中檢索定位信息中的選取內(nèi)容,記錄其出現(xiàn)的次數(shù); 次數(shù)比較模塊,該模塊判斷檢索所得的次數(shù)與定位信息中選取內(nèi)容在參照節(jié)點(diǎn)中出現(xiàn)的次數(shù)是否相等,如果不相等,提醒用戶新結(jié)構(gòu)化文檔內(nèi)容發(fā)生變化,無法重新定位,如果相等,則繼續(xù)運(yùn)行; 重新定位模塊,該模塊根據(jù)定位信息中選取內(nèi)容出現(xiàn)在第幾次重新定位選取內(nèi)容。
【文檔編號(hào)】G06F17/30GK104036026SQ201410300699
【公開日】2014年9月10日 申請(qǐng)日期:2014年6月27日 優(yōu)先權(quán)日:2014年6月27日
【發(fā)明者】吳濤軍 申請(qǐng)人:吳濤軍
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1