国产激情自拍_国产9色视频_丁香花在线电影小说观看 _久久久久国产精品嫩草影院

首頁 > 開發 > XML > 正文

基于XML的購物車的實現

2024-09-05 20:54:03
字體:
來源:轉載
供稿:網友

購物車是電子商務網站中不可缺少的組成部分,但目前大多數購物車只能作為一個顧客選中商品的展示,客戶端無法將購物車里的內容提取出來滿足自己事務處理的需要,而這一點在有些電子商務活動中很有必要。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(); //計算總金額
}
}
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);
String idValue=itemNode.getFirstChild().
getFirstChild().getNodeValue();
//如果找到,則從cartRoot中刪除該節點,并跳出循環
if(idValue.equals(id)){
itemNode=cartRoot.removeChild(itemNode);
break;
}
}
computeTotal(); //計算總金額
}
4. 改變商品數量
根據客戶在頁面上所填的數量,修改myCart中quantity,
并重新計算total:
public void addQuantityToCart(String qnty) throws
IOException,SAXException{
//將傳過來的包含商品數量的一組XML字符串轉換為XML文檔
XMLDocument quantityChanged=parseString(qnty);
//取出包含新數量的quantity節點集和myCart中的quantity節點集
NodeList quantityList=quantityChanged.getElementsByTagName(“quantity”);
NodeList cartList=myCart.getElementsByTagName(“quantity”);
//循環改變商品的數量
for(int x=0;x< cartList.getLength();x ){
//將新quantity的值賦給myCart中相應的quantity中去
String quantity=quantityList.item(x).getFirstChild().getNodeValue();
cartList.item(x).getFirstChild().setNodeValue(quantity);
}
computeTotal(); //計算總金額
}
5. 計算總金額
即計算total的值,其中total=∑(price*quantity):
public void computeTotal(){
NodeList quantityList=myCart.getElementsByTagName(“quantity”);
NodeList priceList=myCart.getElementsByTagName(“price”);
float total=0;
//累加總金額
for(int x=0;x< priceList.getLength();x ){
float quantity=Float.parseFloat(quantityList.item(x)
.getFirstChild().getNodeValue());
float price=Float.parseFloat(priceList.item(x).getFirstChild().getNodeValue());
total=total quantity*price;
}
//將total附給myCart的total
String totalString=String.valueOf(total);
myCart.getElementsByTagName(“total”).
item(0).getFirstChild().setNodeValue(totalString);
}
6. 判斷購物車是否為空
通常在添加新商品時,還需要知道購物車是否為空,
如果為空的話,則要生成一個新的購物車。
public boolean isCartEmpty(){
//item的節點集,如果該節點集包含的節點數為0,則購物車內沒有商品,返回true
NodeList itemList=myCart.getElementsByTagName(“item”);
if(itemList.getLength()==0) return true;
else return false;
}
7. 判斷所選商品是否已在購物車內
即判斷新傳來商品的item是否已在myCart中存在,如果存在,返回true。
public boolean isItemExist(Node item, XMLDocument cart){
NodeList itemList=cart.getElementsByTagName(“item”);
Node id=item.getFirstChild();
String idValue=id.getFirstChild().getNodeValue();
if(itemList.getLength()!=0){
for(int x=0;x< itemList.getLength();x ){
Node itemTemp = itemList.item(x);
7Node idTemp=itemTemp.getFirstChild();
String idTempValue=idTemp.getFirstChild().getNodeValue();
if(idValue.equals(idTempValue)) return true;
}
return false;
}
return false;
}

除上述方法外,XMLCart還包括將XML字符串由輸入時的String轉換成XMLDocument的方法parseString,以及用于輸出時將XSL賦給myCart并返回String型XML字串的 cartTurnToStringWithXSL方法來輔助購物車主要操作的實現,這里不再贅述。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
国产激情自拍_国产9色视频_丁香花在线电影小说观看 _久久久久国产精品嫩草影院
欧美午夜电影一区二区三区| 日本在线天堂| 国产精品一区二区三区四区色| 在线观看av网站| 亚洲欧美国产另类首页| 人人干人人插| 国产日产一区二区| av手机免费在线观看| 青青免费在线视频| 国产有码在线| 国产三区四区在线观看| 精品国产免费第一区二区| 日本三级在线视频| 国产三级香港三韩国三级| av在线官网| 国产精品入口麻豆完整版| 精品美女调教视频| 日本啊v在线| 国产福利在线播放麻豆| 人人澡人人爽| 中文天堂av| 天堂在线中文| www中文字幕在线观看| 国产一二区视频| www网站在线观看| 国产色婷婷在线| 久草亚洲一区| eeuss影院在线观看第一页| 资源视频在线播放免费| 免费a级毛片在线播放| 99在线视频观看| 国产在线视频福利| 亚洲国产精品区| 国产成人久久精品77777| 国产在线观看av| 亚洲欧美自拍另类| 91高清国产| 精品一区二区三区在线成人| 国产日产精品久久久久久婷婷| 久久香蕉一区| 日本欧美在线视频免费观看| 在线视频观看亚洲| 中文岛国精品亚洲一区| 精品卡1卡2卡三卡免费网站| 国产精品99999| 国产超碰在线| 国产福利微拍精品一区二区| 国产精品毛片一区二区三区四区| 天堂亚洲精品| 国产特级嫩嫩嫩bbb| 国产三级视频在线看| 国产精彩视频在线观看免费蜜芽| 最好2018中文免费视频| 国产女主播在线| 中文字幕av高清| jlzzjlzz欧美大全| 国产美女自拍视频| 国产aa视频| 亚洲精品视频区| 超碰在线网站| 国产黄色大片在线观看| 国产高清免费av在线| 在线免费黄色毛片| 免费在线超碰| 国产一级片麻豆| 999在线视频| 波多野结衣久久高清免费| 成人精品福利| gogo在线高清视频| 国产免费av在线| 亚洲妇熟xxxx妇色黄| 五月婷婷在线观看| 99热免费观看| 国产美女高潮| 夜夜操天天干| 国产黄色在线观看| 爱福利在线视频| 国产youjizz在线| 超碰在线影院| av免费在线观| 中文字幕有码在线视频| 天天插天天狠天天透| 国产丝袜在线观看视频| а√最新版在线天堂| 国产精品乱码一区二区三区视频| av在线不卡免费| 国产高清一区二区三区视频| 久久国产精品久久久久久小说| 国产成人久久精品77777| 超碰在线网址| 免费在线播放av| 一个人看的www免费观看视频| 国产精品久久久久永久免费看| 久久国产情侣| www网站在线观看| 精品视频vs精品视频| 国产精品入口免费麻豆| 天堂在线看视频| 久蕉依人在线视频| www.91在线播放| 性网站在线播放| 色中文字幕在线| www.狠狠操| 九九视频九九热| 国产美女av在线| 国产婷婷视频在线| 国产免费人人看| 资源视频在线播放免费| 国产毛片视频| 国产一级在线| 在线视频中文字幕第一页| 四虎影院成人| 黄网址在线播放免费| 天天操夜夜摸| 精品无人区乱码1区2区3区免费| 国产福利av网站| av免费在线一区二区三区| 亚洲精品aaaa| 激情亚洲综合网| 国产乱妇乱子| 国产黄色免费看| 精品国产二区三区| а√资源新版在线天堂| 国产鲁鲁视频在线观看免费| 尤物视频网站在线观看| 精品网站www| 久久国产热视频| 中文字幕av免费| 中文字幕在线视频网| 香蕉视频免费在线播放| 国产在线观看网站| 2018中文字幕在线观看| 青青草视频在线观看| 最新av免费看| av中文字幕在线看| 国产69精品久久app免费版 | 日本成人在线播放| 天天操天天射天天色| 精品成人一区二区三区免费视频| a视频免费看| 午夜视频免费在线观看| 精精国产xxxx视频在线动漫| 黄色av免费在线| 亚洲伊人网在线观看 | 在线观看午夜av| 国产免费高清| 青青草原av在线| 99热免费观看| 2018中文字幕在线观看| 五月婷婷视频在线观看| 免费av在线| 亚洲久草视频| 夜色资源网av在先锋网站观看| 国产精品视频白浆合集| 五月天婷婷基地| 激情在线视频播放| 免费国产阿v视频在线观看| 在线观看中文字幕一区| 国产网站免费观看| 日韩av成人| 国产午夜在线视频| 国产一区二区三区四区尤物| 开心快乐六月丁香婷婷| 欧美精品小视频| 免费av不卡在线观看| 免费a级在线播放| 国产中文伊人| 国产麻豆麻豆| 国产欧美久久久久久久久| 国产精品99999| 国产成人精品综合网站| 国产9色视频| а√最新版在线天堂| 欧美精品另类| 国产一级在线观看| 国产www网站| 日本国产在线| 国产精品一区二区三区视频网站| 国产欧美日本亚洲精品一4区| 国产黄色在线| 天天干天天摸| 国产老肥熟xxxx在线观看| 国产经典av| 久青青在线观看视频国产| 国产小黄视频| 亚洲视频精品在线观看| 国产69久久| h视频在线网站| 激情小说 在线视频| 国产精品白浆流出视频| 日本免费不卡| 91xx在线观看| 国产中文在线视频| 91美女主播在线视频| 九九视频精品在线| 99爱视频在线观看| 国产精品欧美色图| 女子免费在线观看视频www| 国产探花视频在线观看| 免费观看久久久久|