Java Architecture for XML Binding (JAXB)

http://java.sun.com/developer/technicalArticles/WebServices/jaxb/

简单例子:
             InputStream inputStream = TerminalServiceImpl.class.getResourceAsStream("Product.xml");
            BufferedReader reader = new BufferedReader(new InputStreamReader(inputStream, "UTF-8"));
            StringBuffer XML = new StringBuffer();
            String temp = "";
            while ((temp = reader.readLine()) != null) {
                XML.append(temp.trim());
            }

            JAXBContext context = JAXBContext.newInstance(ProducerInfo.class);
            Unmarshaller unmarshaller = context.createUnmarshaller();

            DocumentBuilderFactory builderFactory = DocumentBuilderFactory
                    .newInstance();
            DocumentBuilder db = builderFactory.newDocumentBuilder();
            InputSource is = new InputSource();
            is.setCharacterStream(new StringReader(XML.toString()));
            Document document = db.parse(is);

            Element element = document.getDocumentElement();
            NodeList nodeList = element.getChildNodes();
            for (int i = 0; i < nodeList.getLength(); i++) {
                Node node = nodeList.item(i);
                ProducerInfo producerInfo = (ProducerInfo) unmarshaller
                        .unmarshal(node);
             }

xml:
<?xml version="1.0" encoding="UTF-8"?>
<Producers>

    <ProducerInfo>
        <producerId>JinDu</producerId>
        <producerName>金都酒店</producerName>
        <producerAddress>澳門南灣大馬路時代商業中心</producerAddress>
        <tel>(853)326888</tel>
        <ProductInfo>
            <name>金都酒店娱乐券</name>
            <content>在本机上人民币兑换港币的汇率为 100:99</content>
            <price>10000.00</price>
            <totalPrice>0.10</totalPrice>
            <picture>JinDou_10000.gif</picture>
        </ProductInfo>
        <ProductInfo>
            <name>金都酒店娱乐券</name>
            <content>在本机上人民币兑换港币的汇率为 100:99</content>
            <price>30000.00</price>
            <totalPrice>0.30</totalPrice>
            <picture>JinDou_30000.gif</picture>
        </ProductInfo>
    </ProducerInfo>
<Producers>

ProducerInfo 类:
@XmlAccessorType(AccessType.FIELD)
@XmlRootElement(name = "ProducerInfo")
public class ProducerInfo {
    @XmlElement(name = "ProductInfo")
    private List<ProductInfo> products;
    //other property miss....
}

评论
发表评论

您还没有登录,请登录后发表评论

yongyuan.jiang
搜索本博客
最近加入圈子
存档
最新评论