一種建立標(biāo)簽與樣式規(guī)則綁定關(guān)系的方法和裝置的制造方法
【技術(shù)領(lǐng)域】
[0001]本公開是關(guān)于計(jì)算機(jī)技術(shù)領(lǐng)域,尤其是關(guān)于一種建立標(biāo)簽與樣式規(guī)則綁定關(guān)系的方法和裝置。
【背景技術(shù)】
[0002]隨著計(jì)算機(jī)技術(shù)的發(fā)展,各類的終端得到了廣泛的普及,成為了人們獲取信息的重要工具。網(wǎng)頁、電子文檔等是信息的主要載體,一個(gè)網(wǎng)頁或電子文檔(如電子書)可以由 HTML (Hyper Text Mark-up Language,超文本標(biāo)記語言)文件與 CSS (Cascading StyleSheets,級(jí)聯(lián)樣式表)文件組成。
[0003]HTML文件是由多個(gè)標(biāo)簽組成,用于提供網(wǎng)頁或電子文檔的具體內(nèi)容,CSS文件是由多個(gè)樣式規(guī)則構(gòu)成,每一個(gè)樣式規(guī)則由樣式選擇器(或稱選擇器)和樣式聲明組成,其中,選擇器用于決定樣式規(guī)則是針對(duì)HTML文件中的哪些標(biāo)簽,樣式聲明用于決定相應(yīng)的標(biāo)簽的顯示樣式。在網(wǎng)頁或電子文檔的加載過程中需要進(jìn)行HTML文件內(nèi)容與CSS文件內(nèi)容的匹配過程,即標(biāo)簽與樣式規(guī)則的匹配過程,以確定HTML文件每個(gè)標(biāo)簽對(duì)應(yīng)的樣式規(guī)則,以進(jìn)行后續(xù)的顯示。
[0004]現(xiàn)有的標(biāo)簽與樣式規(guī)則的匹配過程是:獲取HTML文件關(guān)聯(lián)的CSS文件,生成CSS文件內(nèi)的所有樣式規(guī)則的線性列表,遍歷HTML文件中的標(biāo)簽,針對(duì)遍歷到的每一個(gè)標(biāo)簽順序查閱線性列表,找到與該標(biāo)簽匹配的所有樣式規(guī)則。
[0005]在實(shí)現(xiàn)本公開的過程中,發(fā)明人發(fā)現(xiàn)至少存在以下問題:
[0006]基于上述的標(biāo)簽與樣式規(guī)則的匹配過程,遍歷HTML文件中的標(biāo)簽時(shí),對(duì)于其中的每一個(gè)標(biāo)簽都是順序查閱線性列表中的所有的樣式規(guī)則,往往HTML文件中標(biāo)簽的數(shù)目以及CSS文件中樣式規(guī)則的數(shù)目都比較大,導(dǎo)致標(biāo)簽與樣式規(guī)則的匹配效率較低。
【發(fā)明內(nèi)容】
[0007]為了克服相關(guān)技術(shù)中存在的問題,本公開提供了一種建立標(biāo)簽與樣式規(guī)則綁定關(guān)系的方法和裝置。所述技術(shù)方案如下:
[0008]根據(jù)本公開實(shí)施例的第一方面,提供一種建立標(biāo)簽與樣式規(guī)則綁定關(guān)系的方法,所述方法包括:
[0009]獲取待匹配的HTML文件和CSS文件;
[0010]根據(jù)所述CSS文件中的各選擇器所包含的原子選擇器,將所述各選擇器劃分為多個(gè)選擇器分類;
[0011]遍歷所述HTML文件中標(biāo)簽,對(duì)于每個(gè)遍歷到的標(biāo)簽,如果根據(jù)其包含的標(biāo)簽名、標(biāo)簽屬性和對(duì)應(yīng)的屬性值,確定在所述多個(gè)選擇器分類中存在其對(duì)應(yīng)的第一選擇器分類,則在所述第一選擇器分類所包含的選擇器中,查找與所述遍歷到的標(biāo)簽相匹配的第一選擇器,并建立所述遍歷到的標(biāo)簽與所述第一選擇器所屬樣式規(guī)則的綁定關(guān)系。
[0012]可選的,所述根據(jù)所述CSS文件中的各選擇器所包含的原子選擇器,將所述各選擇器劃分為多個(gè)選擇器分類,包括:
[0013]根據(jù)所述CSS文件中的各選擇器的第一級(jí)簡單選擇器所包含的原子選擇器,將所述各選擇器劃分為多個(gè)選擇器分類。
[0014]可選的,所述根據(jù)所述CSS文件中的各選擇器的第一級(jí)簡單選擇器所包含的原子選擇器,將所述各選擇器劃分為多個(gè)選擇器分類,包括:
[0015]根據(jù)所述CSS文件中的各選擇器的第一級(jí)簡單選擇器所包含的元素選擇器對(duì)應(yīng)的標(biāo)簽名,將所述各選擇器劃分為多個(gè)選擇器分類。
[0016]可選的,所述根據(jù)所述CSS文件中的各選擇器的第一級(jí)簡單選擇器所包含的原子選擇器,將所述各選擇器劃分為多個(gè)選擇器分類,包括:
[0017]根據(jù)所述CSS文件中的各選擇器的第一級(jí)簡單選擇器所包含的元素選擇器對(duì)應(yīng)的標(biāo)簽名和包含的非元素選擇器對(duì)應(yīng)的標(biāo)簽屬性、屬性值,將所述各選擇器劃分為多個(gè)選擇器分類。
[0018]可選的,所述方法還包括:
[0019]如果所述遍歷到的標(biāo)簽與多個(gè)樣式規(guī)則建立綁定關(guān)系,則根據(jù)所述多個(gè)樣式規(guī)則中每個(gè)樣式規(guī)則的選擇器的順序信息和/或權(quán)重信息,在所述多個(gè)樣式規(guī)則中選取目標(biāo)樣式規(guī)則,取消所述目標(biāo)樣式規(guī)則之外的其它樣式規(guī)則與所述遍歷到的標(biāo)簽的綁定關(guān)系。
[0020]根據(jù)本公開實(shí)施例的第二方面,提供一種建立標(biāo)簽與樣式規(guī)則綁定關(guān)系的裝置,所述裝置包括:
[0021]獲取模塊,用于獲取待匹配的HTML文件和CSS文件;
[0022]分類模塊,用于根據(jù)所述CSS文件中的各選擇器所包含的原子選擇器,將所述各選擇器劃分為多個(gè)選擇器分類;
[0023]綁定模塊,用于遍歷所述HTML文件中標(biāo)簽,對(duì)于每個(gè)遍歷到的標(biāo)簽,如果根據(jù)其包含的標(biāo)簽名、標(biāo)簽屬性和對(duì)應(yīng)的屬性值,確定在所述多個(gè)選擇器分類中存在其對(duì)應(yīng)的第一選擇器分類,則在所述第一選擇器分類所包含的選擇器中,查找與所述遍歷到的標(biāo)簽相匹配的第一選擇器,并建立所述遍歷到的標(biāo)簽與所述第一選擇器所屬樣式規(guī)則的綁定關(guān)系O
[0024]可選的,所述分類模塊,用于:
[0025]根據(jù)所述CSS文件中的各選擇器的第一級(jí)簡單選擇器所包含的原子選擇器,將所述各選擇器劃分為多個(gè)選擇器分類。
[0026]可選的,所述分類模塊,用于:
[0027]根據(jù)所述CSS文件中的各選擇器的第一級(jí)簡單選擇器所包含的元素選擇器對(duì)應(yīng)的標(biāo)簽名,將所述各選擇器劃分為多個(gè)選擇器分類。
[0028]可選的,所述分類模塊,用于:
[0029]根據(jù)所述CSS文件中的各選擇器的第一級(jí)簡單選擇器所包含的元素選擇器對(duì)應(yīng)的標(biāo)簽名和包含的非元素選擇器對(duì)應(yīng)的標(biāo)簽屬性、屬性值,將所述各選擇器劃分為多個(gè)選擇器分類。
[0030]可選的,所述裝置還包括取消模塊,用于:
[0031]如果所述遍歷到的標(biāo)簽與多個(gè)樣式規(guī)則建立綁定關(guān)系,則根據(jù)所述多個(gè)樣式規(guī)則中每個(gè)樣式規(guī)則的選擇器的順序信息和/或權(quán)重信息,在所述多個(gè)樣式規(guī)則中選取目標(biāo)樣式規(guī)則,取消所述目標(biāo)樣式規(guī)則之外的其它樣式規(guī)則與所述遍歷到的標(biāo)簽的綁定關(guān)系。
[0032]根據(jù)本公開實(shí)施例的第三方面,提供一種建立標(biāo)簽與樣式規(guī)則綁定關(guān)系的裝置,包括:
[0033]處理器;
[0034]用于存儲(chǔ)處理器可執(zhí)行指令的存儲(chǔ)器;
[0035]其中,所述處理器被配置為:
[0036]獲取待匹配的HTML文件和CSS文件;
[0037]根據(jù)所述CSS文件中的各選擇器所包含的原子選擇器,將所述各選擇器劃分為多個(gè)選擇器分類;
[0038]遍歷所述HTML文件中標(biāo)簽,對(duì)于每個(gè)遍歷到的標(biāo)簽,如果根據(jù)其包含的標(biāo)簽名、標(biāo)簽屬性和對(duì)應(yīng)的屬性值,確定在所述多個(gè)選擇器分類中存在其對(duì)應(yīng)的第一選擇器分類,則在所述第一選擇器分類所包含的選擇器中,查找與所述遍歷到的標(biāo)簽相匹配的第一選擇器,并建立所述遍歷到的標(biāo)簽與所述第一選擇器所屬樣式規(guī)則的綁定關(guān)系。
[0039]本公開的實(shí)施例提供的技術(shù)方案可以包括以下有益效果:
[0040]本公開實(shí)施例中,本公開實(shí)施例中,獲取待匹配的HTML文件和CSS文件,根據(jù)所述CSS文件中的各選擇器所包含的原子選擇器,將所述各選擇器劃分為多個(gè)選擇器分類,遍歷所述HTML文件中標(biāo)簽,對(duì)于每個(gè)遍歷到的標(biāo)簽,如果根據(jù)其包含的標(biāo)簽名、標(biāo)簽屬性和對(duì)應(yīng)的屬性值,確定在所述多個(gè)選擇器分類中存在其對(duì)應(yīng)的第一選擇器分類,則在所述第一選擇器分類所包含的選擇器中,查找與所述遍歷到的標(biāo)簽相匹配的第一選擇器,并建立所述遍歷到的標(biāo)簽與所述第一選擇器所屬樣式規(guī)則的綁定關(guān)系。這樣,終端可以根據(jù)遍歷到的標(biāo)簽的信息,在多個(gè)選擇器分類中確定該標(biāo)簽對(duì)應(yīng)的選擇器分類,再在此分類中查找標(biāo)簽所匹配的選擇器,無需順序查閱所有的選擇器,提高了標(biāo)簽與樣式規(guī)則的匹配效率。
[0041]應(yīng)當(dāng)理解的是,以上的一般描述和后文的細(xì)節(jié)描述僅是示例性和解釋性的,并不能限制本公開。
【附圖說明】
[0042]此處的附圖被并入說明書中并構(gòu)成本說明書的一部分,示出了符合本公開的實(shí)施例,并與說明書一起用于解釋本公開的原理。在附圖中:
[0043]圖1是根據(jù)一示例性實(shí)施例示出的一種建立標(biāo)簽與樣式規(guī)則綁定關(guān)系的方法流程圖;
[0044]圖2是根據(jù)一示例性實(shí)施例示出的一種選擇器分類示意圖;
[0045]圖3是根據(jù)一示例性實(shí)施例示出的一種建立標(biāo)簽與樣式規(guī)則綁定關(guān)系的裝置結(jié)構(gòu)示意圖;
[0046]圖4是根據(jù)一示例性實(shí)施例示出的一種建立標(biāo)簽與樣式規(guī)則綁定關(guān)系的裝置結(jié)構(gòu)示意圖;
[0047]圖5是根據(jù)一示例性實(shí)施例示出的一種終端的結(jié)構(gòu)示意圖。
[0048]通過上述附圖,已示出本公開