JAXB新认识----解析XML

        前一阵子写了一篇JAXB的运用,其中讲了如何用JAXB生成XML Schame文件对应的类,也给出一个通过运用JAXB生成的类来组织XML文件,最后输出的例子!
        这两天对JAXB进行了更深入的理解,发现既然可以用它来生成XML文件,为何不能读取其中的结点,然后获取其中的信息呢!下面给出对上次写生成的test.xml文件的读取的方法:

/*
 * create by isle_t 2008-04-30
 * 读取用jaxb根据xsd,生成的xml文件
 
*/

import  java.io.FileInputStream;
import  java.io.IOException;

import  java.util.Iterator;
import  java.util.List;

import  javax.xml.bind.JAXBContext;
import  javax.xml.bind.JAXBElement;
import  javax.xml.bind.JAXBException;
import  javax.xml.bind.Unmarshaller;

import  primer.po.Items;
import  primer.po.PurchaseOrderType;
import  primer.po.USAddress;


public   class  MainOut  {

    
public static void main( String[] args ) {
        
try {
            
// create a JAXBContext
            JAXBContext jc = JAXBContext.newInstance( "primer.po" );
            
            Unmarshaller u 
= jc.createUnmarshaller();
            
            JAXBElement customerE 
= (JAXBElement) u.unmarshal(new FileInputStream(
            
"test.xml"));
            
//读取出根结点PurchaseOrderType
            PurchaseOrderType bo = (PurchaseOrderType) customerE.getValue();
            
//获取子结点USAddress
            USAddress address =  bo.getBillTo();
            
//获取name值
       String addressname = address.getName();
            
            System.out.println(addressname);
            
            
//获取另一子结点Items
            Items item = bo.getItems();
                        
            List
<Items.Item> itemList =item.getItem();
            
            Iterator it 
= itemList.iterator();
            
            
while(it.hasNext()){
                Items.Item ii 
=(Items.Item)it.next();
                System.out.println(ii.getPartNum()
+ " " + ii.getProductName() + " " + ii.getQuantity() +" " + ii.getUSPrice() + "" + ii.getShipDate() + " " + ii.getComment()   );         
                  }


        }
 catch( JAXBException je ) {
            je.printStackTrace();
        }
 catch( IOException ioe ){
            ioe.printStackTrace();
        }

    }

  
}

        如果我上次写的那篇JAXB的运用看过的话,可以更好的理解上面写的,在这里我没有读取每一个节点,只是将其中典型的列举出来了,如果你对JAXB不熟的话,要好好研究,还得多看看其它资料。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值