一个在客户端生成并使用XML的例子

xml|客户端

    这是一个在客户端生成并使用XML的例子,主要用途实现无双刷新页面在客户端处理复杂的数据,由两个文件构成。大家可以看一下,提出宝贵的意见。注意:使用时将saveXML.asp的路径改为GenXML.html的物理路径

-GenXML.html-
<!--
*******
'* Author hardvb
'* Support : web@webjx.com
'* Date Created : 2004/6/18 Merry ChrisMas Day
'* Date Modified:
'* Function: genrate XML Tree and Show in Client
'********
-->
<html>
<head>
<title>
Item Information
</title>
</head>

<body>
<H2>A example genrate XML Tree with JavaScript
<br>
<div id=addItem name=addItem></div> <!--the DIV use for add Item-->
<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" >
<input type="button" id="btndel" name="btndel" value="Del" >
Del No : <input type="text" size=3 name="delNo">
<input type="button" size=3 value="ReList All Item": >
</td>
</tr>

</TABLE>
</form>
<input type="button" id="lookXML" name="lookXML" value="look XML" ><br>
</body>
</html>

<script language="JavaScript">
file://-----global var define -------
var ItemNo=0; file://how many Items born and die
var objDom = new ActiveXObject("MSXML.DOMDocument"); file://define a DOM object
objDom.async=false;
var objRoot = objDom.createElement("EPR"); file://create the root "EPR"
objDom.appendChild(objRoot)
var xmlHTTP = new ActiveXObject("Microsoft.XMLHTTP"); file://create the XMLHTTP object for Save XML without Refrsh Page

file://-------add a new node----------
function add()
{
ItemNo++;
var ItemSec=document.all.addItem.children.length; // how many alive Items
ItemSec++;

var objField = objDom.createElement("Item") file://create node "EPR-->Item"
objDom.documentElement.appendChild(objField);

curnode=objDom.documentElement.lastChild; file://look for last added node
var namedNodeMap =curnode.attributes;

var objattID = objDom.createAttribute("ItemNo"); file://add attribute "ItemNo "
objattID.text =ItemNo
namedNodeMap.setNamedItem(objattID);

var objattID = objDom.createElement("Name") file://create node "EPR-->Item-->name"
objattID.text=document.formItem.ItemName.value
curnode.appendChild(objattID)
document.formItem.ItemName.value="";

var objattID = objDom.createElement("Mount") file://create node "EPR-->Item-->Mount"
objattID.text=document.formItem.Mount.value
curnode.appendChild(objattID)
document.formItem.Mount.value=""

var objattID = objDom.createElement("Spec") file://create node "EPR-->Item-->Spec"
objattID.text=document.formItem.Spec.value
curnode.appendChild(objattID)
document.formItem.Spec.value=""

var objattID = objDom.createElement("price") file://create node "EPR-->Item-->Price"
objattID.text=document.formItem.price.value
curnode.appendChild(objattID)
document.formItem.price.value=""

saveXML(); file://save in Server with ASP

AddItem(); file://Show in DIV
}

file://-----------Del Node-------------
function Del(DelNo)
{
var cond
var Itno=DelNo-1
cond="Item[" +Itno+"]";
var delNode=objDom.documentElement.selectSingleNode(cond) file://choose node to Del
var del=objRoot.removeChild(delNode)
saveXML(); file://save in Server with ASP
DelItem(DelNo); file://Del in DIV
}

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

file://---------Add Item--------------------
function AddItem()
{
var ItemSec=document.all.addItem.children.length;
ItemSec++;
var addItem=document.all.addItem;
var oNewNode = document.createElement("DIV");
addItem.appendChild(oNewNode);
oNewNode.innerHTML="<Table><tr><td> ItemSec "+ ItemSec +" ItemNo "+ItemNo+"</td></tr></Table>";
}

file://---------Del Item--------------------
function DelItem(itNo)
{ var ItNum=itNo
var addItem=document.all.addItem;
var oChild=addItem.children(ItNum-1);
addItem.removeChild(oChild);
}

file://---------List Item--------------------

function ListItem()
{
var addItem=document.all.addItem;
var ItemList=0;
var oNewNode;
addItem.innerHTML=""; file://clear DIV

for ( x=0;x<objDom.documentElement.childNodes.length;x++ )
{
ItemList=x+1; file://get list NO
Itemnode=objDom.documentElement.childNodes(x) file://chose cucrry node
Itemname=Itemnode.selectSingleNode("Name");
ItemMount=Itemnode.selectSingleNode("Mount");
ItemSpec=Itemnode.selectSingleNode("Spec");
Itemprice=Itemnode.selectSingleNode("price");

oNewNode = document.createElement("DIV");
addItem.appendChild(oNewNode);
oNewNode.innerHTML="<Table WIDTH='60%' BORDER='1' bordercolor='green' CELLSPACING='1' CELLPADDING='1' ><tr><td colspan=2 align=center> ItemNo "+ItemList+"</td></tr><tr><td WIDTH='30%'>name: </td><td WIDTH='30%'>"+Itemname.text+" </td></tr><tr><td WIDTH='30%'>Item Mount: </td><td WIDTH='30%'>"+ItemMount.text+" </td></tr><tr><td WIDTH='30%'>Spec: </td><td WIDTH='30%'>"+ItemSpec.text+" </td></tr><tr><td WIDTH='30%'>price: </td><td WIDTH='30%'>"+Itemprice.text+" </td></tr></Table>";
}
}

</script>

------------saveXML.asp-----------------
<%@ Language=VBScript %>
<%
Response.expires=-1
dim xmlrec
set xmlrec=server.CreateObject("microsoft.xmldom")
xmlrec.async=false
xmlrec.load(Request)
xmlrec.save "C:\EPR.xml" '//please change Path with your IIS path
'response.write GetPath()&"\EPR.xml"
%>

时间: 2024-09-28 21:21:48

一个在客户端生成并使用XML的例子的相关文章

用JSP在客户端生成JavaScript代码来实现表单校验

javascript|js|客户端 今天费了一天时间就是做这个东西,原理很简单,就是用 JSP 在页面的开始部分生成一段代码,如 errorcheck.jsp 中所示,但程序太长,还是费了我不少时间来改写. 主程序是名为 ErrorCheck.java ,有了这个 ErrorCheck 的 Bean,我们就再也不用为了表单校验去写那一大堆烦人的 JavaScript 代码了.ErrorCheck 类已帮我们生成了几乎所有你将会用到的校验方法,如是否为数字,长度的校验,是否为合法email等,你只

用 JSP 在客户端生成 &amp;#106avascript 代码来实现表单校验

js|客户端 用 JSP 在客户端生成 JavaScript 代码来实现表单校验 ●○●○●○●○●○●○●○●○●○●○●○●○●○●○○ 作者:刘湛 日期:2000-01-05 jeru@163.net ●● http://www.cyberlabs.com/~jeru/ ○○ 欢迎访问爪哇人,获取更多资料 ●●○●○●○●○●○●○●○●○●○●○●○●○●○●○ 今天费了一天时间就是做这个东西,原理很简单,就是用 JSP 在页面的开始部分生成一段代码,如 errorcheck.jsp 中

用JSP在客户端生成&amp;#106avascript代码来实现表单校验

js|客户端 今天费了一天时间就是做这个东西,原理很简单,就是用 JSP 在页面的开始部分生成一段代码,如 errorcheck.jsp 中所示,但程序太长,还是费了我不少时间来改写. 主程序是名为 ErrorCheck.java ,有了这个 ErrorCheck 的 Bean,我们就再也不用为了表单校验去写那一大堆烦人的 JavaScript 代码了.ErrorCheck 类已帮我们生成了几乎所有你将会用到的校验方法,如是否为数字,长度的校验,是否为合法email等,你只需在 jsp 页面里调

用xfire开发了一个webservice,客户端在调用的时候要传一个二进制数据byte[][] ,在本地tomcat服务器上测试成功,可以接受,

问题描述 用xfire开发了一个webservice,客户端在调用的时候要传一个二进制数据byte[][],在本地tomcat服务器上测试成功,可以接受,但发布到weblogic9上后,就出现问题,错误日志为:-Faultoccurred!java.lang.UnsupportedOperationExceptionatweblogic.xml.stax.XMLStreamReaderBase.getTextCharacters(XMLStreamReaderBase.java:487)ator

servlet-为什么说Filter不能处理用户请求,也不能对客户端生成响应。

问题描述 为什么说Filter不能处理用户请求,也不能对客户端生成响应. 网上资料都属它不能产生response,但是服务器已经将ServletResponse参数传给dofilter() 理论上我利用这个参数完全可以 实现 转发 重定向 修改 响应,但为什么说filter只能修改而不能响应呢?? 解决方案 因为过滤器的作用是在用户请求和真正的action中起到加一个代码层的作用.并且过滤器可以串联起来用. 如果过滤器自己处理请求和响应了,它后面别的过滤器和action怎么办.

java中四种生成和解析XML文档的方法详解(介绍+优缺点比较+示例)_java

众所周知,现在解析XML的方法越来越多,但主流的方法也就四种,即:DOM.SAX.JDOM和DOM4J 下面首先给出这四种方法的jar包下载地址 DOM:在现在的Java JDK里都自带了,在xml-apis.jar包里 SAX:http://sourceforge.net/projects/sax/ JDOM:http://jdom.org/downloads/index.html DOM4J:http://sourceforge.net/projects/dom4j/  一.介绍及优缺点分析

通过C#动态生成图书信息XML文件_实用技巧

通过C#动态生成图书信息XML文件(Books.xml),文件如下: 复制代码 代码如下: <?xml version="1.0" encoding="iso-8859-1"?> <bookstore> <book id="1" category="CHILDREN"> <title>Harry Potter</title> <author>J K. Ro

使用PHP生成和获取XML格式数据

在做数据接口时,我们通常要获取第三方数据接口或者给第三方提供数据接口,而这些数据格式通常是以XML或者JSON格式传输,本文将介绍如何使用PHP生成XML格式数据供第三方调用以及如何获取第三方提供的XML数据. 生成XML格式数据 我们假设系统中有一张学生信息表student,需要提供给第三方调用,并有id,name,sex,age分别记录学生的姓名.性别.年龄等信息.   CREATE TABLE `student` (    `id` int(11) NOT NULL auto_increm

SQLServer中一个多用户自动生成编号的过程

server|sqlserver|过程 SQLServer中一个多用户自动生成编号的过程 if not exists (select * from dbo.sysobjects where id = object_id(N'[IndexTable]') and OBJECTPROPERTY(id, N'IsUserTable') = 1)create table IndexTable(Ex char(20), num integer) go create procedure SetIndex @