欢迎来到天天文库
浏览记录
ID:9707014
大小:69.50 KB
页数:9页
时间:2018-05-05
《基于xml的购物车的实现--》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库。
1、基于XML的购物车的实现>>购物车是电子商务网站中不可缺少的组成部分,但目前大多数购物车只能作为一个顾客选中商品的展示,客户端无法将购物车里的内容提取出来满足自己事务处理的需要,而这一点在有些电子商务活动中很有必要。XML的出现使得网络上传输的数据变得有意义起来,我们可以根据不同的要求以不同的样式将一个购物车的内容显示出来。本文将详细分析一个由Java实现的基于XML的购物车。下面是一个包含了五件商品的购物车的XML内在结构:它的根元素为cart,total元素表示购物车内的总金额,每个item元素表示一件商品,item里的子元素分别标明了该商品的具体信息,可根据实际情况添加、修改或删除
2、。在这里,需要建立一个表示购物车的类:XMLCart.java,它是一个JavaBean,所以它包含了一个空的构造函数。这个类包含了购物车的一些基本功能:生成一个空的购物车,往购物车里添加商品,删除购物车里的商品,改变购物车内商品的数量以及清空购物车等。它拥有一个全局私有变量“privateXMLDocumentmyCart”,myCart用来存储购物车里的详细内容,购物车的基本功能就是对它的操作,它的类型是XMLDocument,即一个XML文档。这样,对购物车的操作就转换成对myCart中的子元素的添加、删除,及元素值的计算、修改等。1.清空购物车清空购物车即生成一个空的购物车。这里
3、空购物车是一个含有根元素cart及其元素total的XML文档,total元素是购物车的总金额,它的初始值为0,其XML具体形式如下:<?xmlversion=‘1.0’encoding=‘gb2312’?><cart><total>0</total></cart>将这个XML字符串由parseString函数转换成XMLDocument存入myCart。其代码如下:publicvoidemptyCart()throlversion=‘1.0’encoding=‘gb2312’?>”+“<cart><to
4、tal>0</total></cart>”;myCart=parseString(stringCart);}2.添加商品添加商品,即将传入的item元素添加到根元素cart里,其中item里包括商品详细信息,同时计算total的值。其代码如下:publicvoidaddItemToCart(StringstringItem)thro由String转换为XMLDocumentXMLDocumentitemAdded=parseString(stringItem);//取出item节点,并复制它NodeListitemList=itemAdded.getElem
5、entsByTagName(“item”);Nodeitem=itemList.item(0);NodecloneItem=item.cloneNode(true);//如果购物车为空,则构造一个新的购物车if(isCartEmpty()){myCart.emptyCart();}//如果该商品不在购物车中,则插入该商品,并计算总金额if(!isItemExist(item,myCart)){//取myCart的根元素,并将复制的item节点添加到后面ElementcartRoot=myCart.getDocumentElement();NodecartNode=cartRoot.app
6、endChild(cloneItem);puteTotal();//计算总金额}}3.删除商品删除商品,即根据商品代码将该商品的item元素从myCart的根元素cart中删除,并重新计算total的值:publicvoidmoveItemFromCart(Stringid){//取出以item为单位的节点集cartList以及根元素cartRootNodeListcartList=myCart.getElementsByTagName(“item”);ElementcartRoot=myCart.getDocumentElement();//在cartList中查找代码为选中id的商品
7、for(intx=0;x<cartList.getLength();x++){NodeitemNode=cartList.item(x);StringidValue=itemNode.getFirstChild().getFirstChild().getNodeValue();//如果找到,则从cartRoot中删除该节点,并跳出循环if(idValue.equals(id)){itemNode=cartRoot.remove
此文档下载收益归作者所有