Java解析XML之 Digester的一个小例子

本文介绍了一个具体的XML文档示例及其对应的Java对象模型。该XML文档包含订单信息,如送货地址、商品详情等。文章展示了如何将这些XML元素映射到Java类中,并通过属性和方法来操作这些数据。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

XML文档

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE po SYSTEM "src/sample.dtd">
<po id="po121" submitted="2001-10-05"
    xmlns
="http://www.youkuaiyun.com">
    
<billTo id="addr-1">
        
<company>The Redzero Cop.</company>
        
<street>Jianguo Road 1ST</street>
        
<street>Building 1</street>
        
<city>Haidian</city>
        
<state>Beijing</state>
        
<postalCode>100071</postalCode>
    
</billTo>
    
<shipTo href="addr-1"/>
    
<order>
        
<item sku="o318-BP" quantity="5">
            
<description>J2EE programmic</description>
        
</item>
        
<item sku="o947-TI" quantity="12">
            
<description>Java WEB Service</description>
        
</item>
        
<item sku="o008-PR" quantity="133">
            
<description>C++ develop</description>
        
</item>
    
</order>
</po>

 Java对象树定义

//根节点,表示一个订单Po
public class Po
...{
    
private String id;
    
private String submitted;
    
private BillTo billTo;
    
private ShipTo shipTo;
    
private Order order;
    
public BillTo getBillTo()
    
...{
        
return billTo;
    }

    
public void setBillTo(BillTo billTo)
    
...{
        
this.billTo = billTo;
    }

    
public Order getOrder()
    
...{
        
return order;
    }

    
public void setOrder(Order order)
    
...{
        
this.order = order;
    }

    
public ShipTo getShipTo()
    
...{
        
return shipTo;
    }

    
public void setShipTo(ShipTo shipTo)
    
...{
        
this.shipTo = shipTo;
    }

    
public String getId()
    
...{
        
return id;
    }

    
public void setId(String id)
    
...{
        
this.id = id;
    }

    
public String getSubmitted()
    
...{
        
return submitted;
    }

    
public void setSubmitted(String submitted)
    
...{
        
this.submitted = submitted;
    }
    
}

//Po的子节点,标识送货地址,对应<po><billTo>
public class BillTo extends Address
...{
    
private String id;

    
public String getId()
    
...{
        
return id;
    }


    
public void setId(String id)
    
...{
        
this.id = id;
    }
    
}


public class ShipTo extends Address
...{
    
private String href;

    
public String getHref()
    
...{
        
return href;
    }


    
public void setHref(String href)
    
...{
        
this.href = href;
    }

    
}

public class Address
...{
    
private String company;
    
private String city;
    
private String state;
    
private String postalCode;
    
private ArrayList streets  = new ArrayList();
    
    
public void addStreet(String street)...{
        
this.streets.add(street);
    }

    
public String getCity()
    
...{
        
return city;
    }

    
public void setCity(String city)
    
...{
        
this.city = city;
    }

    
public String getCompany()
    
...{
        
return company;
    }

    
public void setCompany(String company)
    
...{
        
this.company = company;
    }

    
public String getPostalCode()
    
...{
        
return postalCode;
    }

    
public void setPostalCode(String postalCode)
    
...{
        
this.postalCode = postalCode;
    }

    
public String getState()
    
...{
        
return state;
    }

    
public void setState(String state)
    
...{
        
this.state = state;
    }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值