快速业务通道

用Java实现基于XML的购物车 - 编程入门网

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-06-24

用Java实现基于XML的购物车

时间:2010-07-08

购物车是电子商务网站中不可缺少的组成部分,但目前大多数购物车只能作为一个顾客选中商品的展示,客户端无法将购物车里的内容提取出来满足自己事务处理的需要,而这一点在有些电子商务活动中很有必要。XML的出现使得网络上传输的数据变得有意义起来,我们可以根据不同的要求以不同的样式将一个购物车的内容显示出来。

本文将详细分析一个由Java实现的基于XML的购物车。下面是一个包含了五件商品的购物车的XML内在结构:它的根元素为cart,total元素表示购物车内的总金额,每个item元素表示一件商品,item里的子元素分别标明了该商品的具体信息,可根据实际情况添加、修改或删除。

在这里,需要建立一个表示购物车的类:XMLCart.java,它是一个JavaBean,所以它包含了一个空的构造函数。这个类包含了购物车的一些基本功能: 生成一个空的购物车,往购物车里添加商品,删除购物车里的商品,改变购物车内商品的数量以及清空购物车等。它拥有一个全局私有变量“private XMLDocument myCart”,myCart用来存储购物车里的详细内容,购物车的基本功能就是对它的操作,它的类型是XMLDocument,即一个XML文档。这样,对购物车的操作就转换成对myCart中的子元素的添加、删除,及元素值的计算、修改等。

1.清空购物车

清空购物车即生成一个空的购物车。这里空购物车是一个含有根元素cart及其元素total的XML文档,total元素是购物车的总金额,它的初始值为0,其XML具体形式如下:

< ?xml version=‘1.0’ encoding=‘gb2312’?> < cart> < total>0< /total> < /cart>

将这个XML字符串由parseString函数转换成XMLDocument存入myCart。

其代码如下:

public void emptyCart() throws IOException,SAXException{ String stringCart=“< ?xml version=‘1.0’encoding=‘gb2312’?> ”+ “< cart>< total>0< /total>< /cart>”; myCart=parseString(stringCart); }

2.添加商品

添加商品,即将传入的item元素添加到根元素cart里,其中item里包括商品详细信息,同时计算total的值。其代码如下:

public void addItemToCart(String stringItem) throws IOException,SAXException{  //将item由String转换为XMLDocument  XMLDocument itemAdded=parseString(stringItem);  //取出item节点,并复制它  NodeList itemList=itemAdded.getElementsByTagName(“item”);  Node item=itemList.item(0);  Node cloneItem=item.cloneNode(true);  //如果购物车为空,则构造一个新的购物车  if(isCartEmpty()){   myCart.emptyCart();  }  //如果该商品不在购物车中,则插入该商品,并计算总金额  if(!isItemExist(item,myCart)){   //取myCart的根元素,并将复制的item节点添加到后面   Element cartRoot=myCart.getDocumentElement();   Node cartNode=cartRoot.appendChild(cloneItem);   computeTotal(); //计算总金额  } }

用Java实现基于XML的购物车(2)

时间:2010-07-08

3.删除商品

删除商品,即根据商品代码将该商品的item元素,从myCart的根元素cart中删除,并重新计算total的值:

public void moveItemFromCart(String id){  //取出以item为单位的节点集cartList以及根元素cartRoot  NodeList cartList=myCart.getElementsByTagName(“item”);  Element cartRoot=myCart.getDocumentElement();  //在cartList中查找代码为选中id的商品  for(int x=0;x< cartList.getLength();x++){   Node itemNode=cartList.item(x)

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号