dom4j,xstream

一、解析xml(dom4j):


	/**
	 * 明文模式解析请求参数(结果用hashmap存储)分为两步
	 * @param request
	 * @return
	 * @throws Exception
	 */
	
	public static HashMap<String, String> parseXML(HttpServletRequest request)throws Exception {
		HashMap<String, String> map = new HashMap<String, String>();


		SAXReader reader = new SAXReader();
		Document doc = reader.read(request.getInputStream());
		// 得到xml的根节点
		Element root = doc.getRootElement();


		recursiveParseXML(root,map);


		return map;


	}



	private static void recursiveParseXML(Element root,HashMap<String, String> map ){
		List<Element>elementList = root.elements();
		
		//判断有没有子元素列表
		if(elementList.size() == 0){
			System.out.println(root.getName()+"=>"+root.getTextTrim());
			map.put(root.getName(),root.getTextTrim());
		}
		else{
			//遍历
			for(Element e:elementList){
				recursiveParseXML(e,map);
			}
		}
			
	}


二、java对象转换为xml:(xstream):


<span style="font-size:10px;">(CDATA格式)

   private static XStream xstream = new XStream(new XppDriver() {
	public HierarchicalStreamWriter createWriter(Writer out) {
		return new PrettyPrintWriter(out) {
			// 对所有xml节点都增加CDATA标记
			boolean cdata = true;


			public void startNode(String name, Class clazz) {
				super.startNode(name, clazz);
			}


			protected void writeText(QuickWriter writer, String text) {
				if (cdata) {
					writer.write("<![CDATA[");
					writer.write(text);
					writer.write("]]>");
				} else {
					writer.write(text);
				}
			}
		};
	}
});


使用xstream:

	public static String messageToXML(TextMessage textMessage){


		xstream.alias("xml", TextMessage.class);
		return xstream.toXML(textMessage);
	}</span>


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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值