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

Dom4J创建XML

阅读更多

说明:本文主要是用dom4j来创建一个带循环的xml,也是工作中用到的,在此留一个备份吧,关于XML的解析和dom4j的JAR参考http://dycsos123ok.iteye.com/blog/1672870

 

【样式XML】

<gt:XMLReturnTest xmlns:gt="http://www.sgcc.com.cn/sggis/service/schema"
	xmlns:gml="http://www.opengis.net/gml">
	<gt:RecordArray>
		<gt:Record>
			<gt:Field>
				<gt:Name>PSRType</gt:Name>
				<gt:Value>剥皮</gt:Value>
			</gt:Field>
		</gt:Record>
		<gt:Record>
			<gt:Field>
				<gt:Name>PSRType</gt:Name>
				<gt:Value>平儿</gt:Value>
			</gt:Field>
		</gt:Record>
		<gt:Record>
			<gt:Field>
				<gt:Name>PSRType</gt:Name>
				<gt:Value>龙虾妹</gt:Value>
			</gt:Field>
		</gt:Record>
		<gt:Record>
			<gt:Field>
				<gt:Name>PSRType</gt:Name>
				<gt:Value>大婶</gt:Value>
			</gt:Field>
		</gt:Record>
	</gt:RecordArray>
</gt:XMLReturnTest>
 

 

【解析源码】

 

package com.dyc.dom4j;

import java.util.ArrayList;
import java.util.List;

import org.dom4j.Document;
import org.dom4j.DocumentHelper;
import org.dom4j.Element;

public class CreateXmlFromDom4J {

	/**
	 * @param args
	 */
	public static final String SGGIS_SCHEMA_PREFIX = "gt";
	public static final String SGGIS_SCHEMA_URI = "http://www.sgcc.com.cn/sggis/service/schema";
	public static final String SGGIS_SCHEMA_PREFIX_GML = "gml";
	public static final String SGGIS_SCHEMA_URI_GML = "http://www.opengis.net/gml";

	public String addListToXML(List<String> list, String rootName) {
		Document doc = DocumentHelper.createDocument();
		Element root = doc.addElement(SGGIS_SCHEMA_PREFIX + ":" + rootName);
		root.addNamespace(SGGIS_SCHEMA_PREFIX, SGGIS_SCHEMA_URI).addNamespace(
				SGGIS_SCHEMA_PREFIX_GML, SGGIS_SCHEMA_URI_GML);
		Element element = root.addElement(SGGIS_SCHEMA_PREFIX + ":RecordArray");
		for (String value : list) {
			Element paramElement = element.addElement(SGGIS_SCHEMA_PREFIX
					+ ":Record");
			Element clildElement1 = paramElement.addElement(SGGIS_SCHEMA_PREFIX
					+ ":Field");
			clildElement1.addElement(SGGIS_SCHEMA_PREFIX + ":Name").addText(
					"PSRType");
			clildElement1.addElement(SGGIS_SCHEMA_PREFIX + ":Value").addText(
					value);
		}
		return root.asXML();
	}

	public static void main(String[] args) {
		List<String> list = new ArrayList<String>() ;
		list.add("剥皮") ;
		list.add("平儿") ;
		list.add("龙虾妹") ;
		list.add("大婶") ;
		CreateXmlFromDom4J cxf = new CreateXmlFromDom4J() ;
		String res = cxf.addListToXML(list, "XMLReturnTest") ;
		System.out.println(res);
	}
}
 
分享到:
评论
2 楼 dycsos123ok 2014-09-12  
zhuangshuo 写道
博主你好,创建一个像你解析里面一样的xml文件 值里面有2个 整数,如果要存储一个地图坐标的话(有两个值,即经纬度),要怎么做呢?

那要看你坐标要什么格式了,坐禁在建对象如果是点可能是<x>100</x><y>100</y>的格式表示,但是多边形一组坐标这样表示反而不方便,所以建议表示形式<x>100 100,100 200</x>表示一条线的两个端点坐点;你可以将标签里面的对象用StringBuffer拼接好,再按照上面保存就好了。
1 楼 zhuangshuo 2014-07-31  
博主你好,创建一个像你解析里面一样的xml文件 值里面有2个 整数,如果要存储一个地图坐标的话(有两个值,即经纬度),要怎么做呢?

相关推荐

Global site tag (gtag.js) - Google Analytics