首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> Java 程式設計 >> Java 相關知識

Java 實作 XML 購物車:結構化資料交換與 JavaBean 封裝

     編輯:Java 相關知識

為什麼選擇 XML 購物車?

傳統購物車僅供前端顯示,難以被外部系統擷取處理。XML 賦予資料自描述能力,透過 XSLT 可彈性轉換呈現樣式,支援企業整合與多通道應用。本文設計 XMLCart JavaBean,以 DOM 操作 XMLDocument 實現增刪改查與總價計算。

XML 結構定義

<?xml version='1.0' encoding='gb2312'?>
<cart>
  <total>0</total>
  <item>
    <id>P001</id>
    <name>產品名稱</name>
    <price>100</price>
    <quantity>2</quantity>
  </item>
  ...
</cart>

XMLCart 核心方法實作

1. 清空購物車 — 建立空 XML 文件

public void emptyCart() throws IOException, SAXException {
    String xml = "<?xml version='1.0' encoding='gb2312'?><cart><total>0</total></cart>";
    myCart = parseString(xml);
}

2. 新增商品 — 插入 item 節點並重算總價

public void addItemToCart(String stringItem) throws IOException, SAXException {
    XMLDocument itemDoc = parseString(stringItem);
    Node item = itemDoc.getElementsByTagName("item").item(0).cloneNode(true);
    if (isCartEmpty()) emptyCart();
    if (!isItemExist(item, myCart)) {
        myCart.getDocumentElement().appendChild(item);
        computeTotal();
    }
}

3. 移除商品 — 依 id 刪除 item 節點

public void moveItemFromCart(String id) {
    NodeList items = myCart.getElementsByTagName("item");
    Element root = myCart.getDocumentElement();
    for (int i=0; i

4. 修改數量 — 同步 quantity 節點值

public void addQuantityToCart(String qntyXml) throws IOException, SAXException {
    XMLDocument qDoc = parseString(qntyXml);
    NodeList newQtys = qDoc.getElementsByTagName("quantity");
    NodeList oldQtys = myCart.getElementsByTagName("quantity");
    for (int i=0; i

5. 計算總價 — 遍歷 price * quantity 累加

public void computeTotal() {
    NodeList qtys = myCart.getElementsByTagName("quantity");
    NodeList prices = myCart.getElementsByTagName("price");
    float total = 0;
    for (int i=0; i

6. 輔助判斷方法

public boolean isCartEmpty() {
    return myCart.getElementsByTagName("item").getLength() == 0;
}
public boolean isItemExist(Node item, XMLDocument cart) {
    String id = item.getFirstChild().getFirstChild().getNodeValue();
    NodeList list = cart.getElementsByTagName("item");
    for (int i=0; i

序列化與輸出

  • parseString(String):字串 → XMLDocument (DOMParser)。
  • cartTurnToStringWithXSL(XSL):套用 XSLT 轉換輸出 HTML/CSV 等格式,支援多樣化呈現。

應用場景

  • 前端 JSP/Servlet 操作 XMLCart Session Bean。
  • 結帳時以 XML 交換訂單資料給 ERP、物流系統。
  • 行動裝置客戶端解析 XML 渲染原生 UI。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved