`
gudao8192
  • 浏览: 95312 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
文章分类
社区版块
存档分类
最新评论

JAXB新认识----解析XML

XML 
阅读更多

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

/**//*
*createbyisle_t2008-04-30
*读取用jaxb根据xsd,生成的xml文件
*/

importjava.io.FileInputStream;
importjava.io.IOException;

importjava.util.Iterator;
importjava.util.List;

importjavax.xml.bind.JAXBContext;
importjavax.xml.bind.JAXBElement;
importjavax.xml.bind.JAXBException;
importjavax.xml.bind.Unmarshaller;

importprimer.po.Items;
importprimer.po.PurchaseOrderType;
importprimer.po.USAddress;


publicclassMainOut{

publicstaticvoidmain(String[]args){
try{
//createaJAXBContext
JAXBContextjc=JAXBContext.newInstance("primer.po");

Unmarshalleru
=jc.createUnmarshaller();

JAXBElementcustomerE
=(JAXBElement)u.unmarshal(newFileInputStream(
"test.xml"));
//读取出根结点PurchaseOrderType
PurchaseOrderTypebo=(PurchaseOrderType)customerE.getValue();
//获取子结点USAddress
USAddressaddress=bo.getBillTo();
//获取name值
Stringaddressname=address.getName();

System.out.println(addressname);

//获取另一子结点Items
Itemsitem=bo.getItems();

List
<Items.Item>itemList=item.getItem();

Iteratorit
=itemList.iterator();

while(it.hasNext()){
Items.Itemii
=(Items.Item)it.next();
System.out.println(ii.getPartNum()
+""+ii.getProductName()+""+ii.getQuantity()+""+ii.getUSPrice()+""+ii.getShipDate()+""+ii.getComment());
}


}
catch(JAXBExceptionje){
je.printStackTrace();
}
catch(IOExceptionioe){
ioe.printStackTrace();
}

}


}

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

分享到:
评论

相关推荐

    很简单的XML 实验源代码13

    3. **解析XML**:解析XML文档有两种方式——DOM(Document Object Model)和SAX(Simple API for XML)。DOM将整个XML文档加载到内存中,形成一个树形结构,便于处理;SAX是事件驱动的,逐行读取,适合处理大文件。 ...

    AndroidJAXBLib:AndroidJAXBLib

    Android JAXB - JAX-B 标准的基于轻量级注释的库。 这不是来自 javaEE 库的构建。 这是我自己对流行标准的认识。 现在库支持两个编组器适配器 JSON 和 XML。 因此,您可以以简单的方式将解析或合成从一种切换到另...

    spring使用OXM进行对象XML映射解析

    1. 认识XML解析技术 XML(Extensible Markup Language)是一种标记语言,用于存储和传输数据。春框架中使用OXM对对象进行XML映射解析,需要了解XML相关概念和处理技术。 1.1 XML相关概念 * DTD(Document Type ...

    实验二、Java集合与XML实验.doc

    在Java中,可以使用DOM(Document Object Model)、SAX(Simple API for XML)和StAX(Streaming API for XML)等方式解析XML。这些API允许程序读取、修改和生成XML文档。 - **DOM解析**:DOM将整个XML文档加载到...

    使用jaxws快速发布WebService

    客户端可以通过解析WSDL文档来调用这个服务,或者使用诸如JAX-WS的`javax.xml.ws.Service`类来生成客户端代理。 总的来说,JAX-WS提供了一种简洁的方式来发布Web服务,减少了开发者与底层XML和SOAP交互的复杂性。...

    学习Java语言的30个参考,让你坐拥别人之上的30个擦考

    - **JAXP、JDOM、DOM4J**:学习解析XML文档的方法,包括DOM、SAX等方式。 - **JAXB**:掌握Java Architecture for XML Binding的使用,实现Java对象与XML文档之间的相互转换。 ### 13. Web服务 - **SOAP、RESTful**...

    电影院售票系统

    在实现过程中,初学者需要掌握如何使用Java的Socket编程来建立和管理客户端与服务器间的连接,理解TCP/IP协议的工作原理,以及如何使用XML解析库(如JAXB或DOM4J)来处理XML文件。此外,对于并发处理和多线程的理解...

    Apache CXF 中文教程

    JAX-WS底层依赖JAXB(Java Architecture for XML Binding),使得开发者可以更加便捷地使用注解来定义和操作Web服务。JAX-WS已经取代了早期的JAX-RPC(Java API for XML Remote Procedure Call),并且与JAX-RPC不...

    Spring.3.x企业应用开发实战(完整版).part2

    14.1 认识XML解析技术 14.1.1 什么是XML 14.1.2 XML的处理技术 14.2 XML处理利器:XStream 14.2.1 XStream概述 14.2.2 快速入门 14.2.3 使用XStream别名 14.2.4 XStream转换器 14.2.5 XStream注解 14.2.6 流化对象 ...

    北大JAVA基础教程

    17. **XML处理**:学习DOM和SAX两种解析XML文档的方式,以及使用JAXB进行对象与XML的绑定。 18. **JAVA EE基础**:简要介绍JAVA企业级应用开发,如Servlet、JSP、JNDI、EJB等。 19. **项目实战**:通过一个完整的...

    Spring3.x企业应用开发实战(完整版) part1

    14.1 认识XML解析技术 14.1.1 什么是XML 14.1.2 XML的处理技术 14.2 XML处理利器:XStream 14.2.1 XStream概述 14.2.2 快速入门 14.2.3 使用XStream别名 14.2.4 XStream转换器 14.2.5 XStream注解 14.2.6 流化对象 ...

    有关Java常见的误解小结(来看一看)

    Java提供了强大的API,如JAXB(Java Architecture for XML Binding)和DOM(Document Object Model),用于解析、生成和操作XML文档。因此,Java和XML经常协同工作,但它们各自承担不同的职责。 误解六:Java很容易...

Global site tag (gtag.js) - Google Analytics