敬业的IT人 >> 网站建设 >> Web编程 >> JavaScript >> &#106avascript构造XML树结构

&#106avascript构造XML树结构

敬业的IT人 互联网 佚名 2008-1-10 17:14:00

用JavaScript构造XML树结构的一个例子,包括删除添加节点。

关键词:asp, JavaScript, Java, XML

将Client端的加入的数据,形成所需要的XML树。
这种方法适合于处理Client端复杂的数据,
最后在Server端完成XML树的存储。
说白了就是XML只是一个存放临时数据的垃圾站。^_^
大家可以在这个模型基础上做扩充移动\修改等功能。

下列存为EnterItem.htm
<html>
<head>
<title>
  Item Information
</title>
</head>

<body>
<div id=additem name=additem></div>
<form name=formItem  action=processForm.asp method=post>
  <TABLE WIDTH=60% BORDER=2 bordercolor=orange CELLSPACING=1 CELLPADDING=1>
  <tr>
  <td colspan=2><h3>Enter your Item information</h3></td>
  </tr>
  <tr>
      <td>Item Name:</td>
      <td><input type=text  name=ItemName></td>
   <tr>
  <tr>
      <td>Mount: </td>
      <td><input type=text      name=Mount></td>
  </tr>
  <tr>
          <td> Spec:    </td>
          <td><input type=text  name=Spec></td>
  </tr>   
  <tr>
          <td> price:</td>
           <td><input type=text  name=price></td>
</tr>          
<tr>
          <td align=center colspan=2><input type=button id=btnSub name=btnSub value=Add onclick=add();>
             <input type=button id=btndel name=btndel value=Del onclick=Del(document.all.delNo.value);>
            Del No :    <input type=text size=3  name=delNo>
        </td>
</tr>

  </TABLE>
</form>
<input type=button id=lookXML name=lookXML value=look XML onclick=window.open(EPR.xml,XML,toolbar=no,status=no,scrollbars=yes,height=400,width=750,top=50,left=30);><br>
</body>
</html>

<script>
var ItemNo=0;
var objDom = new ActiveXObject(MSXML.DOMDocument);     file://define a DOM object
objDom.async=false;
var objRoot = objDom.createElement(EPR);                                file://create the root
objDom.appendChild(objRoot)
var xmlHTTP = new ActiveXObject(Microsoft.XMLHTTP);       

file://-------add a new node----------
function add()
{
ItemNo++;

var objField = objDom.createElement(Item)
objDom.documentElement.appendChild(objField);

curnode=objDom.documentElement.lastChild;
var namedNodeMap =curnode.attributes;

var objattID = objDom.createAttribute(ItemNo);
objattID.text =ItemNo
namedNodeMap.setNamedItem(objattID);

var objattID = objDom.createElement(Name)
objattID.text=document.formItem.ItemName.value
curnode.appendChild(objattID)
document.formItem.ItemName.value=;

var objattID = objDom.createElement(Mount)
objattID.text=document.formItem.Mount.value
curnode.appendChild(objattID)
document.formItem.Mount.value=

var objattID = objDom.createElement(Spec)
objattID.text=document.formItem.Spec.value
curnode.appendChild(objattID)
document.formItem.Spec.value=

var objattID = objDom.createElement(price)
objattID.text=document.formItem.price.value
curnode.appendChild(objattID)
document.formItem.price.value=

saveXML();
}

file://-----------Del Node-------------
function Del(DelNo)
{
var cond
cond=//.[@ItemNo= +DelNo+];
var delNode=objDom.documentElement.selectSingleNode(cond)
var del=objRoot.removeChild(delNode)

saveXML();
}

file://----------save XML----------------
function saveXML()
{
xmlHTTP.open(POST,saveXML.asp,false);
xmlHTTP.send(objDom);
if(xmlHTTP.responseText.indexOf(Error:)!=-1)
    {
        alert(xmlHTTP.responseText);
  }
}
</script>

 

存为saveXML.asp
  <%@ Language=VBScript %>
  <%
Response.expires=-1
dim xmlrec
set xmlrec=server.CreateObject(microsoft.xmldom)
xmlrec.async=false
xmlrec.load(Request)
xmlrec.save Server.MapPath(\)&\EPR.xml
%>

粤ICP备06119539号
Copyright CiscoSky.Org,Some Rights Reserved.
Email:me1228#tom.com