爱易网页
Java教程
改如何拼成一个xml形式的字符串
改如何拼成一个xml形式的字符串
日期:2014-05-20 浏览次数:20535 次
改怎么拼成一个xml形式的字符串,在线等数据库已经取出值,改怎么拼成一个xml形式的字符串现在数据库已经取出a b c三个字段的所有值大概是这样 a b ca1 b1 3a2 b2 1a3 b3 2a4 b4 1a5 b5 3a6 b6 1a7 b7 2a8 b8 2a9 b9 1a10 b10 3xml: ... ... ... ... 拼成串也可以,使用jdom4j建树最好while(rs.next){......}------解决方案--------------------
Java code
Document document = DocumentHelper.createDocument();
Element root = document.addElement("response");
while(rs.next()){
String id= rs.getString(0); //字段a
String counlom= rs.getString(1); //字段b
String catolg = rs.getString(2); //字段c
Element catolgEl = ((Element)document.selectSingleNode("//response/catolg[@name='"+catolg+"']"));
if(catolgEl==null){
catolgEl = root.addElement("catolg").addAttribute("name", catolg);
}
catolgEl.addElement("layer").addAttribute("id", id).addAttribute("counlom", counlom);
}
System.out.println(document.asXML());
------解决方案--------------------
这个不是例子,而是根据楼主要求写的。楼主可以运行改下,只要把取数据那段换成你从数据库取就可以了。用的就是dom4jJava code
import java.io.FileOutputStream;
import java.io.OutputStreamWriter;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
import java.util.TreeMap;
import org.dom4j.Document;
import org.dom4j.DocumentHelper;
import org.dom4j.Element;
import org.dom4j.io.OutputFormat;
import org.dom4j.io.XMLWriter;
public class TestXML {
class Data {
public Data() {
}
String catolg;
String id;
String counlom;
}
public static void main(String[] args) {
new TestXML().output("D:\\response.xml");
}
public void output(String fileName) {
String charset = "UTF-8";
Document doc = DocumentHelper.createDocument();
Element response = doc.addElement("response"); // 根元素 response
doc.setRootElement(response);
List list = new ArrayList();
list.add("a1 b1 3");
list.add("a2 b2 1");
list.add("a3 b3 2");
list.add("a4 b4 1");
list.add("a6 b6 1");
list.add("a7 b7 2");
list.add("a8 b8 2");
list.add("a9 b9 1");
list.add("a10 b10 3");
//排序 保证 catolg name="1" 然后 "2" "3"
Map sortedMap = new TreeMap();
for (String line : list) {
String arr[] = line.split(" ");
Data d = new Data();
d.catolg = arr[2];
d.id = arr[0];
d.counlom = arr[1];
ArrayList l = sortedMap.get(d.catolg);
if (l == null) {
l = new ArrayList();
sortedMap.put(d.catolg, l);
}
l.add(d);
}
Map nameMap = new TreeMap();
for (ArrayList datas : sortedMap.values()) {
for (Data d : datas) {
String catolg = d.catolg;
String id = d.id;
String counlom = d.counlom;
Element catolgElement = nameMap.get(catolg);
if (catolgElement == null) {
catolgElement = response.addElement("catolg");
catolgElement.addAttribute("name", catolg);
nameMap.put(catolg, catolgElement);
}
Element layer = catolgElement.addElement("layer");
layer.addAttribute("id", id);
layer.addAttribute("counlom", counlom);
}
}
OutputFormat format = OutputFormat.createPrettyPrint(); // 设置XML文档输出格式
format.setEncoding(charset); // 设置XML文档的编码类型
format.setSuppressDeclaration(true);
format.setIndent(true); // 设置是否缩进
format.setIndent("\t"); // 以空格方式实现缩进
format.setNewlines(true); // 设置是否换行
// format.setExpandEmptyElements(true); //设置空元素是头和尾都写
try {
XMLWriter xmlWriter = new XMLWriter(new OutputStreamWriter(
new FileOutputStream(fileName), charset), format);
xmlWriter.write(response);
xmlWriter.close();
} catch (Exception e) {
e.printStackTrace();
}
}
}
免责声明: 本文仅代表作者个人观点,与爱易网无关。其原创性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容、文字的真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
相关资料更多>
怎么在jsp页面中使用js日期控件
DWR框架和spring整合出现的有关问题
在JSP中用URL传递参数的有关问题
请教jtree的每个节点上加上鼠标单击事件,如何加啊,用addActionListener好像不行啊
这个标签有误吗,为什么报错,该如何处理
java技术交流群69646083,该如何解决
ueditor下传图片失败,请大神指点
java 关于构造方法的题,该怎么处理
SSH 第二次跳转有关问题
|