现在的位置: 首页 > 综合 > 正文

XML基础–解析(JDOM)

2018年01月24日 ⁄ 综合 ⁄ 共 2443字 ⁄ 字号 评论关闭

1.简介
1>JDOM是一种使用XML的独特Java工具包,用于快速开发XML应用程序。它的设计包含Java语言的语法乃至语义。它基于树型结构,利用纯JAVA的技术对XML文档实现解析、生成以及序列化等多种操作,利用更为强有力的JAVA语言特性,把SAX和DOM的功能有效地结合起来。
2>JAXP--用于XML语法分析的Java API 包含以下三个软件包:
a.org.w3c.dom--W3C推荐的用于XML标准规划文档对象模型的Java工具
b.org.w3c.sax--用于对XML进行语法分析的事件驱动的简单API
c.javax.xml.parsers--工厂化工具,允许应用程序开发人员获得并配置特殊的语法分析器工具。
     JDOM能够替换org.w3c.dom软件包有计划地操作XML文档
3>JDOM的jar包组成:
a.org.jdom--包含了所有xml文档要素的java类
b.org.jdom.adapaters--包含了与dom适配的java类
c.org.jdom.filter--包含了xml文档的过滤器类
d.org.jdom.input--包含了读取xml文档的类
e.org.jdom.output--包含了写入xml文档的类
f.org.jdom.transform--包含了将jdom xml文档接口转换为其他xml文档接口
g.org.jdom.xpath--包含了对xml文档xpath操作的类
4>利用JDOM创建XML文档,并将文档进行输出:

	public static void main(String[] args) {
		try {
			Document document=new Document();//构建文档
			Element root=new Element("persons");//创建根元素
			document.addContent(root);   		//将根元素添加到文档中
			Comment comment=new Comment("this is a comment");//创建注释
			root.addContent(comment);			//将注释添加到文档中
			
			Element e1=new Element("person");	//创建普通元素
			e1.setAttribute("stuno","s01");		//为普通元素设置属性
			root.addContent(e1);
			
			Element e2=new Element("person");
			Attribute attr=new Attribute("stuno", "s02");//创建属性
			e2.setAttribute(attr);				//将属性添加到元素中
			e2.addContent(new Element("name").setText("cash"));//创建元素,并使用setText()为元素设置值
			List<Element> list=new ArrayList<Element>();  //创建元素集合
			list.add(new Element("gender").setText("male"));
			list.add(new Element("age").setText("20"));
			e2.addContent(list);				//将元素集合作为元素的子节点添加元素中
			root.addContent(e2);
			
			//输出文档
			//Format format=Format.getRawFormat();  //该方法通常用于XML数据的网络传输,这种格式可以去掉不必要的空白,减少传送的数据量
			Format format=Format.getPrettyFormat(); //创建XML文档输出的格式化方式(该格式化方式,用户可以自定义)
			XMLOutputter out=new XMLOutputter(format); //根据XML格式化方式创建XML输出器
			out.output(document, new FileOutputStream("jdom.xml"));//输出XML文档
		} catch (Exception e) {
			e.printStackTrace();
		}
	}

5>JDOM解析XML文档,并输出到控制台上

	public static void main(String[] args) throws Exception {
		SAXBuilder builder=new SAXBuilder();  //创建解析器
		Document document=builder.build(new File("jdom.xml")); //根据xml文档构建document文档对象
		Element root=document.getRootElement(); //获取根节点
		parseXML(root);
	}
	
	private static void parseXML(Element element){
		System.out.print("<"+element.getName());
		List<Element> list=element.getChildren();  //获取节点下所有子节点集合
		List<Attribute> atrs=element.getAttributes();//获取节点所有属性
		if(null!=atrs){
			for(Attribute atr :atrs){
				String atrName=atr.getName();
				String atrValue=atr.getValue();
				System.out.print(" "+atrName+"=\""+atrValue+"\"");
			}
		}
		System.out.print(">");
		if(null!=list&&0!=list.size()){
			for(Element e:list){
				parseXML(e);
			}
		}else{
			System.out.print(element.getText());
		}
		System.out.println("</"+element.getName()+">");
		
	}

 

 

 

抱歉!评论已关闭.