用JAXB存取XML数据
JAXB概要
JAXB为Java Architecture for XML Binding的缩写,意为XML绑定的JAVA框架。它提供了一套可以简单存取XML数据的API,同时,JAXB可以根据XML的schema自动生成操作XML的JAVA类。利用JAXB,使用JAXB自动生成的操作XML的JAVA类,可以基本上不用考虑XML结构而简单地存取XML数据。
JAXB的下载与安装
JAXB至少需要导入以下jar文件。
activation.jar
jaxb-api.jar
jaxb-impl.jar
jaxb-xjc.jar
根据情况,可能还会需要其它jar文件。
下载:
可以通过
http://java.sun.com/webservices/downloads/webservicespack.html
下载JAXB。
XML原型
Order.xml
<?xml version="1.0" encoding="utf-8" ?>
<project default="xjc-compile" basedir=".">
<property name="src.dir" location="src" />
<property name="lib.dir" location="lib/jaxb" />
<property name="xml-schema.dir" location="xml-schema" />
<property name="schema.name" value="Orders.xsd" />
<property name="package" value="com.test" />
<path id="classpath">
<fileset dir="${lib.dir}" includes="*.jar" />
</path>
<taskdef name="xjc" classname="com.sun.tools.xjc.XJCTask" classpathref="classpath" />
<target name="xjc-compile">
<echo message="Build Jaxb Class from Schema" />
<xjc schema="${xml-schema.dir}/${schema.name}" target="${src.dir}" package="${package}" />
</target>
</project>
在eclipse里新建项目JaxbProject。目录阶层为:
\JaxbProject
--lib
--jaxb
--activation.jar
--jaxb-api.jar
&n
相关文档:
using System.Xml;
//初始化一个xml实例
XmlDocument xml=new XmlDocument();
//导入指定xml文件
xml.Load(path);
xml.Load(HttpContext.Current.Server.MapPath("~/file/bookstore.xml"));
//指定一个节点
XmlNode root=xml.SelectSingleNode("/root");
//获取节点下所有直接子节点
XmlNodeList childlist=root ......
xml:
<?xml version="1.0" encoding="utf-8" ?>
<library>
<name>首都图书馆</name>
<address>朝阳区华威桥南</address>
<books>
<book type="math">
<id>0000</id>
</book&g ......
我们常常需要读取xml文件,把里面的信息转化为我们自定义的类型,或则吧自定义类型转化为Xml字符串。在这里介绍一个比较简单的对象转化方法。在我自己的Framwork里面也多次用到。里面涉及到节点、属性、集合。
示例一 该xml文件涉及到属性、节点集合不涉及个节点:
<?xml version="1.0" encoding="utf-8"?>
<da ......
文章来源:IT工程技术网 http://www.systhinker.com/html/43/n-11643.html
用的是一种很笨的方法,但可以帮助初学者了解访问XML节点的过程。
已知有一个XML文件(bookstore.xml)如下:
<?xml version="1.0" encoding="gb2312"?>
<bookstore>
<book genre="fantasy" ISBN="2-3631-4">
......
Class.xml
<?xml version="1.0" encoding="utf-8"?>
<?xml-stylesheet type="text/css" href="class.css"?>
<bookdetail>
<book class="A">
<author>曹雪芹</author>
<title>红楼梦</title>
<price>60.00</price>
</book>
<book class="A"& ......