中文字幕二区_国产精品免费在线观看_黄色网站观看_人人草人人澡_日本真实娇小xxxx

您的位置: 首頁(yè) > 技術(shù)文檔 > 網(wǎng)頁(yè)制作 > 用FSO操作 xml
UBB,剪貼板,textRange及其他 回到列表 滑動(dòng)門(mén)菜單技術(shù)
 用FSO操作 xml

作者:colordancer 時(shí)間: 2006-04-07 文檔類(lèi)型:原創(chuàng) 來(lái)自:藍(lán)色理想

試了一下,xmlDoc.save()行不同,就試著用fso做了出來(lái)。
整理一下,供大家discuss。

由于用js操作本地xml文件之后save時(shí)會(huì)permission denied,所以據(jù)我所知就只能通過(guò)FSO來(lái)做。而用FSO,基本上就與文件是否是xml無(wú)關(guān)。

xml文件:

<root>
  <parent>
    <child1>one</child1>
    <child2>one</child2>
  </parent>
  <parent>
    <child1>two</child1>
    <child2>two</child2>
  </parent>
  <parent>
    ...
  </parent>
</root>

var temp;//要操作的數(shù)據(jù)

//添加節(jié)點(diǎn)
function add(root,parent,child1,child2){
 try{
  var fso = new ActiveXObject("Scripting.FileSystemObject");
  var fileOpen = fso.OpenTextFile("*.xml",1);
  var fileContent = fileOpen.ReadAll();
  fileOpen.close();

  if(fileContent.toString().indexOf(temp) !=-1){
   alert(temp+"was already in data.");
  }else{
   fileContent = fileContent.replace("</"+root+">","");
   fileContent += "<"+parent+"><"+child1+">";
   fileContent += ...;
   fileContent += "</"+child1+"><"+child2+">";
   fileContent += ...;
   fileContent += "</"+child2+"></"+parent+"></"+root+">";
   var fileWrite = fso.OpenTextFile("*.xml",2)
   fileWrite.write(fileContent);
   fileWrite.close();
   alert("add successfully!")
  }
 }catch(e){
  alert("fail to add.");
 }
}


//刪除節(jié)點(diǎn)
function del(root,parent,child1,child2){
 try{
  if( confirm("are you sure to delete symbol:"+temp+"?" ) ){
   var fso = new ActiveXObject("Scripting.FileSystemObject");
   var fileOpen = fso.OpenTextFile("*.xml",1);
   var fileContent = fileOpen.ReadAll();
   fileOpen.close();
   
   var parentArr = fileContent.split("</"+parent+">");
   var symbolPos = -2;//不一定是2,只要<0即可
   for (var i=0; i<parentArr.length-1; i++){
    if(parentArr[i].indexOf(temp) != -1){
    symbolPos = i;
    continue;
    }
    parentArr[i] += "</"+parent+">"; 
   }
   if (symbolPos == -2){
    alert(temp+" not found in data.")
   }else{
    if(symbolPos == 0){
     parentArr[0] = "<"+root+">";
    }else{
     parentArr.splice(symbolPos,1);
    }
    fileContent = parentArr.toString().replace(/,/g,"")
    var fileWrite = fso.OpenTextFile("*.xml",2);
    fileWrite.write(fileContent);
    fileWrite.close();
    alert("deleted successfully!");
   }
  }
 }catch(e){
  alert("fail to delete.");
 }

基本思路:

添加節(jié)點(diǎn)
1:讀入原先xml文件所有字符,保存為fileContent;
2:去除根結(jié)點(diǎn)的封閉節(jié)點(diǎn),即</root>;
3:fileContent += <parent><child1>..</child1><child2>...</child2></parent>;
4:fileContent += </root>;
5:寫(xiě)入xml文件,關(guān)閉。
基本上就是用手動(dòng)輸入來(lái)代替xml的CreateNode。

刪除節(jié)點(diǎn)
1:讀入原先xml文件所有字符,保存為fileContent;
2:以parent來(lái)分割fileContent,保存為parentArr[];
3:循環(huán)搜索parentArr[i],利用indexOf(parentArr[i])來(lái)判斷要 刪除的節(jié)點(diǎn)里的內(nèi)容 是否出現(xiàn)在parentArr[i];如果沒(méi)有找到,則parentArr[i] += parent用來(lái)補(bǔ)上split時(shí)丟失的parent;如果找到了,則不用 += parent, 并且記錄i的值;
4:parentArr.splice(i,1),刪去節(jié)點(diǎn);
5:parentArr.toString().replace(/,/g,""),用來(lái)去除逗號(hào);
6:寫(xiě)入xml文件,關(guān)閉。

注意:要注意split帶來(lái)的節(jié)點(diǎn)不易匹配的問(wèn)題,所以 parentArr[i] += parent 時(shí)要小心。 當(dāng)然split不一定按parent,哪個(gè)節(jié)點(diǎn)清晰就按哪個(gè)split。

看起來(lái)好像js操作本地文件沒(méi)什么意義,呵呵,不過(guò)由于看到好像沒(méi)有多少人用fso操作xml過(guò),所以就試下,換換思路,平時(shí)fso用得也很少。歡迎批評(píng)指正~:D

經(jīng)典論壇討論帖:
http://www.95time.cn/bbs/NewsDetail.asp?id=2526288

出處:藍(lán)色理想
責(zé)任編輯:moby

◎進(jìn)入論壇網(wǎng)頁(yè)制作、網(wǎng)站綜合版塊參加討論

相關(guān)文章 更多相關(guān)鏈接
用php讀取xml數(shù)據(jù)
模板用xml的思路
xml css htc 的綜合運(yùn)用
js“樹(shù)”讀取xml數(shù)據(jù)
xmlHTTP返回值重編碼的優(yōu)化
關(guān)鍵字搜索 常規(guī)搜索 推薦文檔
熱門(mén)搜索:CSS Fireworks 設(shè)計(jì)比賽 網(wǎng)頁(yè)制作 web標(biāo)準(zhǔn) 用戶(hù)體驗(yàn) UE photoshop Dreamweaver Studio8 Flash 手繪 CG
站點(diǎn)最新 站點(diǎn)最新列表
周大!熬•自然”設(shè)計(jì)大賽開(kāi)啟
國(guó)際體驗(yàn)設(shè)計(jì)大會(huì)7月將在京舉行
中國(guó)國(guó)防科技信息中心標(biāo)志征集
云計(jì)算如何讓安全問(wèn)題可控
云計(jì)算是多數(shù)企業(yè)唯一擁抱互聯(lián)網(wǎng)的機(jī)會(huì)
阿里行云
云手機(jī)年終巨獻(xiàn),送禮標(biāo)配299起
阿里巴巴CTO王堅(jiān)的"云和互聯(lián)網(wǎng)觀"
1499元買(mǎi)真八核 云OS雙蛋大促
首屆COCO桌面手機(jī)主題設(shè)計(jì)大賽
欄目最新 欄目最新列表
淺談JavaScript編程語(yǔ)言的編碼規(guī)范
如何在illustrator中繪制臺(tái)歷
Ps簡(jiǎn)單繪制一個(gè)可愛(ài)的鉛筆圖標(biāo)
數(shù)據(jù)同步算法研究
用ps作簡(jiǎn)單的作品展示頁(yè)面
CSS定位機(jī)制之一:普通流
25個(gè)最佳最閃亮的Eclipse開(kāi)發(fā)項(xiàng)目
Illustrator中制作針線縫制文字效果
Photoshop制作印刷凹凸字體
VS2010中創(chuàng)建自定義SQL Rule

藍(lán)色理想版權(quán)申明:除部分特別聲明不要轉(zhuǎn)載,或者授權(quán)我站獨(dú)家播發(fā)的文章外,大家可以自由轉(zhuǎn)載我站點(diǎn)的原創(chuàng)文章,但原作者和來(lái)自我站的鏈接必須保留(非我站原創(chuàng)的,按照原來(lái)自一節(jié),自行鏈接)。文章版權(quán)歸我站和作者共有。

轉(zhuǎn)載要求:轉(zhuǎn)載之圖片、文件,鏈接請(qǐng)不要盜鏈到本站,且不準(zhǔn)打上各自站點(diǎn)的水印,亦不能抹去我站點(diǎn)水印。

特別注意:本站所提供的攝影照片,插畫(huà),設(shè)計(jì)作品,如需使用,請(qǐng)與原作者聯(lián)系,版權(quán)歸原作者所有,文章若有侵犯作者版權(quán),請(qǐng)與我們聯(lián)系,我們將立即刪除修改。

您的評(píng)論
用戶(hù)名:  口令:
說(shuō)明:輸入正確的用戶(hù)名和密碼才能參與評(píng)論。如果您不是本站會(huì)員,你可以注冊(cè) 為本站會(huì)員。
注意:文章中的鏈接、內(nèi)容等需要修改的錯(cuò)誤,請(qǐng)用報(bào)告錯(cuò)誤,以利文檔及時(shí)修改。
不評(píng)分 1 2 3 4 5
注意:請(qǐng)不要在評(píng)論中含與內(nèi)容無(wú)關(guān)的廣告鏈接,違者封ID
請(qǐng)您注意:
·不良評(píng)論請(qǐng)用報(bào)告管理員,以利管理員及時(shí)刪除。
·尊重網(wǎng)上道德,遵守中華人民共和國(guó)的各項(xiàng)有關(guān)法律法規(guī)
·承擔(dān)一切因您的行為而直接或間接導(dǎo)致的民事或刑事法律責(zé)任
·本站評(píng)論管理人員有權(quán)保留或刪除其管轄評(píng)論中的任意內(nèi)容
·您在本站發(fā)表的作品,本站有權(quán)在網(wǎng)站內(nèi)轉(zhuǎn)載或引用
·參與本評(píng)論即表明您已經(jīng)閱讀并接受上述條款
推薦文檔 | 打印文檔 | 評(píng)論文檔 | 報(bào)告錯(cuò)誤  
專(zhuān)業(yè)書(shū)推薦 更多內(nèi)容
網(wǎng)站可用性測(cè)試及優(yōu)化指南
《寫(xiě)給大家看的色彩書(shū)1》
《跟我去香港》
眾妙之門(mén)—網(wǎng)站UI 設(shè)計(jì)之道
《Flex 4.0 RIA開(kāi)發(fā)寶典》
《贏在設(shè)計(jì)》
犀利開(kāi)發(fā)—jQuery內(nèi)核詳解與實(shí)踐
作品集 更多內(nèi)容

雜⑦雜⑧ Gold NORMANA V2