数据交换格式之XML

XML是一种基于XML规范语法的标签类型文档,它是重量级的,本文主要介绍XML在java语言里面的生成与解析,XML生成包为Dom4j,有关XML与其他数据格式之间的比较将会在接下来的文章中给出。
一、生成xml
使用java代码生成以下xml文档

<?xml version="1.0" encoding="UTF-8"?>  
<Root>  
    <User name="stryang" sex="" age="24">
    	<son>
    	</son>
    </User> 
</Root>

java代码

//java
/** 建立document对象 */
Document document = DocumentHelper.createDocument();
/** 建立config根节点 */
Element configElement = document.addElement("Root");
/** 用户属性 */
Element userElement = configElement.addElement("User");
userElement.addAttribute("name", "stryang");
userElement.addAttribute("sex", "男");
userElement.addAttribute("age", "24");

userElement.addElement("son");

将xml文档转为字符串

try {
	// 使用输出流来进行转化
	ByteArrayOutputStream out = new ByteArrayOutputStream();
	// 使用GB2312编码
	OutputFormat format = new OutputFormat("   ", true, "utf-8");
	XMLWriter writer = new XMLWriter(out, format);
	writer.write(document);
	String s = out.toString("utf-8");
	out.close();
} catch (Exception ex) {
	ex.printStackTrace();
}

二、解析xml
1.从http输出流里面获取xml

public static Document getDocument(String url){  
	Document doc = null;
	HttpURLConnection conn = null;
	InputStream ins = null;
	SAXReader reader = null;
	try{
		HttpTimeoutHandler hth = new HttpTimeoutHandler(600000);
		URL conURL = new URL(null,url,hth);
		conn = (HttpURLConnection)conURL.openConnection();
		conn.setDoInput(true);
		conn.setDoOutput(true);
   	conn.setUseCaches(false);
   	ins = conn.getInputStream();
   	reader =new SAXReader();
   	doc= reader.read(ins);	
   	ins.close();
   	conn.disconnect();
  	} catch (Exception e) {
   	e.printStackTrace();
  	} finally {
   	try {
    		if (ins != null) {
     			ins.close();
     			ins = null;
    		}
   	} catch (IOException e1) {
    		e1.printStackTrace();
   	}
   	try {
    		if (conn != null) {
     			conn.disconnect();
     			conn = null;
    		}
   	} catch (Exception e2) {
     		e2.printStackTrace();
   	}
  	}
  	return doc;
}

2.从Document对象获取数据,主要涉及到dom4j相关api

  • Element.node(index) - 获得在元素特定索引XML节点。
  • Element.attributes() - 获取一个元素的所有属性。
  • Node.valueOf(@Name) - 得到元件的给定名称的属性的值。
  • Document.getRootElement() - 得到的XML的根元素。
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值