介紹
這里所描述的過程將使你能夠創(chuàng)建一個簡單的基于jQuery / XML的解析器和搜索機制。此過程將通過一個AJAX請求檢索XML,然后在jQuery中分析數(shù)據(jù),為搜索機制做準(zhǔn)備。該解決方案將基于不區(qū)分大小寫的全部或部分關(guān)鍵字匹配地返回結(jié)果。來自于關(guān)鍵字搜索的返回結(jié)果設(shè)置將被格式化為一個直接鏈接到相應(yīng)網(wǎng)站的超鏈接。jQuery搜索方法非常類似于Mike Endale的一個項目,不過增加了一個DOM解析器,正則表達(dá)式以及結(jié)果集分組。
背景
客戶端需要一個簡單的搜索工具來查找基于關(guān)鍵字搜索的本地內(nèi)部網(wǎng)站。關(guān)鍵字搜索必須不區(qū)分大小寫,并允許返回部分匹配的結(jié)果。歸咎于客戶端內(nèi)容管理系統(tǒng)的架構(gòu),因此(SharePoint)只能執(zhí)行客戶端腳本。其解決方案的另一個障礙是,源數(shù)據(jù)將來自多個源。數(shù)據(jù)被存儲在多個Excel電子表格,CSV文件和MS Access數(shù)據(jù)庫內(nèi)。這就對我們提出了這樣的需要:開發(fā)具有一系列查詢和一個宏的Access解決方案,充當(dāng)可合并、擦洗,并最后格式化數(shù)據(jù)作為XML輸出的偽ETL。對于這個解決方案的目的,我們將詳細(xì)介紹JavaScript XML分析器的設(shè)計,而不是偽Access ETL宏工具的設(shè)計。
使用代碼
該解決方案的做法是利用一個簡單的基于JavaScript / XML的搜索來發(fā)送數(shù)據(jù)結(jié)果到HTML / JavaScript前端。前端將引用腳本:jQuery,XML和CSS文件。XML格式將因為它的可讀性和它是數(shù)據(jù)交換行業(yè)標(biāo)準(zhǔn)格式之一的事實而被使用。 XML數(shù)據(jù)將通過使用AJAX的客戶端jQuery解析,并通過Internet Explorer 11呈現(xiàn)。
解決方案將使用RegExp對象來處理關(guān)鍵字匹配,驗證和特殊字符處理。RegExp對象字符串將檢查危險語法從而提高解決方案的穩(wěn)定性和整體可用性。
我們將默認(rèn)使用JavaScript分組功能來返回匹配結(jié)果作為折疊的紀(jì)錄集。折疊的記錄集線項目將被URL鏈接到相關(guān)的Project Workspace網(wǎng)站。在擴展的組記錄集下,結(jié)果將存在于相關(guān)的子記錄中,當(dāng)通過On Click事件展開的時候。