購物車是電子商務網站中不可缺少的組成部分
本文將詳細分析一個由Java實現的基於XML的購物車
在這裡
清空購物車即生成一個空的購物車
< ?xml version=
< cart>
< total>
< /cart>
將這個XML字符串由parseString函數轉換成XMLDocument存入myCart
其代碼如下
public void emptyCart() throws IOException
String stringCart=
myCart=parseString(stringCart)
}
添加商品
public void addItemToCart(String stringItem)
throws IOException
//將item由String轉換為XMLDocument
XMLDocument itemAdded=parseString(stringItem)
//取出item節點
NodeList itemList=itemAdded
Node item=em(
Node cloneItem=item
//如果購物車為空
if(isCartEmpty()){
myCart
}
//如果該商品不在購物車中
if(!isItemExist(item
//取myCart的根元素
Element cartRoot=myCart
Node cartNode=cartRoot
computeTotal()
}
}
刪除商品
public void moveItemFromCart(String id){
//取出以item為單位的節點集cartList以及根元素cartRoot
NodeList cartList=myCart
Element cartRoot=myCart
//在cartList中查找代碼為選中id的商品
for(int x=
Node itemNode=em(x)
String idValue=itemNode
getFirstChild()
//如果找到
if(idValue
itemNode=cartRoot
break;
}
}
computeTotal()
}
根據客戶在頁面上所填的數量
public void addQuantityToCart(String qnty) throws
IOException
//將傳過來的包含商品數量的一組XML字符串轉換為XML文檔
XMLDocument quantityChanged=parseString(qnty)
//取出包含新數量的quantity節點集和myCart中的quantity節點集
NodeList quantityList=quantityChanged
NodeList cartList=myCart
//循環改變商品的數量
for(int x=
//將新quantity的值賦給myCart中相應的quantity中去
String quantity=em(x)
em(x)
}
computeTotal()
}
即計算total的值
public void computeTotal(){
NodeList quantityList=myCart
NodeList priceList=myCart
float total=
//累加總金額
for(int x=
float quantity=Float
float price=Float
total=total+quantity*price;
}
//將total附給myCart的total
String totalString=String
myCart
item(
}
通常在添加新商品時
public boolean isCartEmpty(){
//item的節點集
NodeList itemList=myCart
if(itemList
else return false;
}
即判斷新傳來商品的item是否已在myCart中存在
public boolean isItemExist(Node item
NodeList itemList=cart
Node id=item
String idValue=id
if(itemList
for(int x=
Node itemTemp = em(x)
String idTempValue=idTemp
if(idValue
}
return false;
}
return false;
}
除上述方法外
From:http://tw.wingwit.com/Article/program/Java/hx/201311/26148.html