風人園

          弱水三千,只取一瓢,便能解渴;佛法無邊,奉行一法,便能得益。
          隨筆 - 99, 文章 - 181, 評論 - 56, 引用 - 0
          數據加載中……

          用javascript操作xml

          文中盡量用上所有的操作和屬性,以做示范

          < script?language = " JavaScript " >
          <!--
          var ?doc? = ? new ?ActiveXObject( " Msxml2.DOMDocument " );? // ie5.5+,CreateObject("Microsoft.XMLDOM")?


          // 加載文檔
          //
          doc.load("b.xml");

          // 創建文件頭
          var ?p? = ?doc.createProcessingInstruction( " xml " , " version='1.0'??encoding='gb2312' " );

          ????
          // 添加文件頭
          ????doc.appendChild(p);

          // 用于直接加載時獲得根接點
          //
          var?root?=?doc.documentElement;

          // 兩種方式創建根接點
          //
          ????var?root?=?doc.createElement("students");
          ???? var ?root? = ?doc.createNode( 1 , " students " , "" );

          ????
          // 創建子接點
          ???? var ?n? = ?doc.createNode( 1 , " ttyp " , "" );

          ????????
          // 指定子接點文本
          ???????? // n.text?=?"?this?is?a?test";
          ????
          ????
          // 創建孫接點
          ???? var ?o? = ?doc.createElement( " sex " );
          ????????o.text?
          = ? " " ;???? // 指定其文本

          ????
          // 創建屬性
          ???? var ?r? = ?doc.createAttribute( " id " );
          ????????r.value
          = " test " ;

          ????????
          // 添加屬性
          ????????n.setAttributeNode(r);

          ????
          // 創建第二個屬性????
          ???? var ?r1? = ?doc.createAttribute( " class " );
          ????????r1.value
          = " tt " ;
          ????????
          ????????
          // 添加屬性
          ????????n.setAttributeNode(r1);

          ????????
          // 刪除第二個屬性
          ????????n.removeAttribute( " class " );

          ????????
          // 添加孫接點
          ????????n.appendChild(o);

          ????????
          // 添加文本接點
          ????????n.appendChild(doc.createTextNode( " this?is?a?text?node. " ));

          ????????
          // 添加注釋
          ????????n.appendChild(doc.createComment( " this?is?a?comment\n " ));
          ????
          ????????
          // 添加子接點
          ????????root.appendChild(n);
          ????
          ????
          // 復制接點
          ???? var ?m? = ?n.cloneNode( true );

          ????????root.appendChild(m);
          ????????
          ????????
          // 刪除接點
          ????????root.removeChild(root.childNodes( 0 ));

          ????
          // 創建數據段
          ???? var ?c? = ?doc.createCDATASection( " this?is?a?cdata " );
          ????????c.text?
          = ? " hi,cdata " ;
          ????????
          // 添加數據段
          ????????root.appendChild(c);
          ????
          ????
          // 添加根接點
          ????doc.appendChild(root);

          ????
          // 查找接點
          ???? var ?a? = ?doc.getElementsByTagName( " ttyp " );
          ????
          // var?a?=?doc.selectNodes("http://ttyp");

          ????
          // 顯示改接點的屬性
          ???? for ( var ?i = ? 0 ;i < a.length;i ++ )
          ????
          {
          ????????alert(a[i].xml);
          ????????
          for ( var ?j = 0 ;j < a[i].attributes.length;j ++ )
          ????????
          {
          ????????????alert(a[i].attributes[j].name);
          ????????}

          ????}


          ????
          // 修改節點,利用XPATH定位節點
          ???? var ?b? = ?doc.selectSingleNode( " //ttyp/sex " );
          ????b.text?
          = ? " " ;

          ????
          // alert(doc.xml);

          ????
          // XML保存(需要在服務端,客戶端用FSO)
          ???? // doc.save();
          ????
          ????
          // 查看根接點XML
          ???? if (n)
          ????
          {
          ????????alert(n.ownerDocument.xml);
          ????}


          // -->
          </ script >

          javascript讀取xml

          <%
          Response.Write?"<?xml?version=""1.0""?encoding=""GB2312""??>"
          Response.Write?"<Msg>"
          ?????Response.Write?"<TName>kingapex</TName>"
          ?????Response.Write?"<TName>wangfeng</TName>"
          ?????Response.Write?"<Name>ddd</Name>"
          Response.Write"</Msg>"

          %>

          '==================test.asp=====================
          <Script?Language="Javascript">
          function?GetXmlData(){
          var?str="";
          var?NewName="";

          var?xmlDoc?=?new?ActiveXObject("Microsoft.XMLDOM");
          xmlDoc.async="false";
          xmlDoc.load("xml.asp");
          ?????if(xmlDoc.parseError.errorCode?!=?0)
          ?????{
          ???????????alert("sorry?出現錯誤,請和管理員聯系!");
          ???????????window.close();
          ???????????return;
          ?????}else
          ????????{
          ???????????var?TName?=?xmlDoc.documentElement.selectNodes("TName");
          ???????????var?Name?=?xmlDoc.documentElement.selectNodes("Name");
          ???????????var?n?=?TName.length;
          ??????document.write?("Name元素為:"+Name(0).text+"<br>第一個TName員素為:"+TName(0).text+"<br>第二個TName員素為:"+TName(1).text);
          ?????}
          }

          </Script>
          <a?href="javascript:GetXmlData();">look</a>

          posted on 2006-07-13 12:16 風人園 閱讀(303) 評論(0)  編輯  收藏 所屬分類: JavaScript

          主站蜘蛛池模板: 东乡族自治县| 武川县| 上饶县| 松阳县| 巨野县| 永清县| 泗水县| 海伦市| 郎溪县| 灵川县| 呈贡县| 大埔区| 炎陵县| 合川市| 兴山县| 名山县| 资溪县| 民丰县| 静海县| 玛多县| 仁布县| 尼勒克县| 高尔夫| 吴桥县| 平乐县| 金坛市| 民勤县| 清新县| 江西省| 汽车| 信丰县| 岐山县| 金华市| 大竹县| 乌兰浩特市| 乌苏市| 徐水县| 余江县| 平阴县| 江陵县| 重庆市|