public String parseXML() {
String parseContent = JspUtils.getParameter(getRequest(),
"parseContent", "");
Long deep = JspUtils.getLongParameter(getRequest(), "deep", new Long(-1));
String selectInfos = JspUtils.getParameter(getRequest(), "selectInfos",
"");
List categorys = categoryManageService.findSubCategories(null, null,
false, parseContent, true);
Element root = new Element("root");
root.setAttribute("type", selectInfos);
Element curElement = root;
if (!Utilities.isNullOrEmpty(categorys)) {
for (int i = 0; i < categorys.size(); i++) {
Category c = (Category) categorys.get(i);
Element elements = new Element("node");
elements.setAttribute("type", "category");
elements.setAttribute("tId", c.getId() + "");
elements.setAttribute("pId",
c != null && c.getParent() != null ? c.getParent()
.getId()
+ "" : "-1");
elements.setAttribute("name", c != null
&& !StringUtils.isNullOrEmpty(c.getName()) ? c
.getName() : "");
if (selectInfos.equalsIgnoreCase("topic")) {
Element tElement = null;
List<Topic> topics = categoryManageService.findTopics(c);
if (!Utilities.isNullOrEmpty(topics)) {
for (Topic topic : topics) {
tElement = new Element("node");
tElement.setAttribute("tId", topic != null ? topic.getId()+"" : "01");
tElement.setAttribute("pId", c.getId() + "");
tElement.setAttribute("name", topic != null && !StringUtils.isNullOrEmpty(topic.getName()) ? topic.getName() : "");
elements.addContent(tElement);
}
}
}
addElementIntoEML(elements, curElement, root);
System.out.println(curElement);
}
}
Document doc = new Document(root);
String newFile = "E:/xml/"+selectInfos+".xml";
try {
File file = new File(newFile);
if (!file.exists()) {
file.createNewFile();
}
XMLOutputter XMLOut = new XMLOutputter();
OutputStream os = new FileOutputStream(file);
XMLOut.setEncoding("utf-8");
XMLOut.setNewlines(true);
XMLOut.setIndent(3);
XMLOut.output(doc, os);
os.close();
} catch (Exception e) {
e.printStackTrace();
}
getRequest().setAttribute("newFile", newFile);
return "parseXML";
}
private void addElementIntoEML(Element newElement, Element curElement, Element root) {
Element temp = curElement;
while (temp != null) {
if (newElement.getAttributeValue("pId").equals(temp.getAttributeValue("tId"))
|| temp.getAttributeValue("type").equals(root.getAttributeValue("type"))) {
temp.addContent(newElement);
curElement = newElement;
return;
}
temp = temp.getParent();
}
}
分享到:
相关推荐
JDOM实现从数据库读取字段生成XML树
Spring+iBatis+JDom递归生成XML树 Spring+iBatis+JDom递归生成XML树
Jdom是一个开源项目,基于树形结构,利用纯java的技术对XML文档实现解析,生成,序列化以及多种操作.这篇文章主要介绍了Javaweb中使用Jdom解析xml的方法的相关资料,需要的朋友可以参考下
10)XML是分层的树形结构的自解释的一种可扩展的标记语言。 XML和HTML的关系 1) 事实上,HTML和XML不能够进行比较的。因为XML是一种元语言,而HTML是一种定义好的标记语言。XML是描述数据的语言,HTML是描述数据 ...
JDOM(注意JDOM决不是DOM扩展,虽然名字差不多,但两者平行的关系 )是一个开源项目,它基于树型结构,利用纯JAVA的技术对XML文档实现解析、生成、序列化以及多种操作。JDOM的目的是成为Java特定文档模型,它简化与XML...
DWR 自动将DOM、DOM4J、JDOM和XOM转换成DOM树,前面这几种类型都仅仅返回Document,Element,Node.DWR会自动将这些转换成浏览器DOM对象.通常在启动JDOM Converter时会有一个提示信息,除非你想采用JDOMconverter否则可以...
第1部分 xml篇. 第1章 xml与dtd 2 1.1 xml的产生 2 1.2 w3c介绍 2 1.3 关于xml的几个问题 3 1.4 xml与html的比较 4 1.4.1 xml将数据与显示分开 5 1.4.2 xml对文档的格式要求更加严格 6 1.4.3 xml有且只能有...
第1部分 xml篇. 第1章 xml与dtd 2 1.1 xml的产生 2 1.2 w3c介绍 2 1.3 关于xml的几个问题 3 1.4 xml与html的比较 4 1.4.1 xml将数据与显示分开 5 1.4.2 xml对文档的格式要求更加严格 6 1.4.3 xml有且只能有...
第1部分 xml篇. 第1章 xml与dtd 2 1.1 xml的产生 2 1.2 w3c介绍 2 1.3 关于xml的几个问题 3 1.4 xml与html的比较 4 1.4.1 xml将数据与显示分开 5 1.4.2 xml对文档的格式要求更加严格 6 1.4.3 xml有且只能有...
第1部分 xml篇. 第1章 xml与dtd 2 1.1 xml的产生 2 1.2 w3c介绍 2 1.3 关于xml的几个问题 3 1.4 xml与html的比较 4 1.4.1 xml将数据与显示分开 5 1.4.2 xml对文档的格式要求更加严格 6 1.4.3 xml有且只能有...
1个目标文件,JNDI的使用例子,有源代码,可以下载参考,JNDI的使用,初始化Context,它是连接JNDI树的起始点,查找你要的对象,打印找到的对象,关闭Context…… ftp文件传输 2个目标文件,FTP的目标是:(1)提高...
1个目标文件,JNDI的使用例子,有源代码,可以下载参考,JNDI的使用,初始化Context,它是连接JNDI树的起始点,查找你要的对象,打印找到的对象,关闭Context…… ftp文件传输 2个目标文件,FTP的目标是:(1)提高...
EJB中JNDI的使用源码例子 1个目标文件,JNDI的使用例子,有源代码,可以下载参考,JNDI的使用,初始化Context,它是连接JNDI树的起始点,查找你要的对象,打印找到的对象,关闭Context…… ftp文件传输 2个目标文件...
EJB中JNDI的使用源码例子 1个目标文件,JNDI的使用例子,有源代码,可以下载参考,JNDI的使用,初始化Context,它是连接JNDI树的起始点,查找你要的对象,打印找到的对象,关闭Context…… ftp文件传输 2个目标文件...
1个目标文件,JNDI的使用例子,有源代码,可以下载参考,JNDI的使用,初始化Context,它是连接JNDI树的起始点,查找你要的对象,打印找到的对象,关闭Context…… ftp文件传输 2个目标文件,FTP的目标是:(1)提高...
1个目标文件,JNDI的使用例子,有源代码,可以下载参考,JNDI的使用,初始化Context,它是连接JNDI树的起始点,查找你要的对象,打印找到的对象,关闭Context…… ftp文件传输 2个目标文件,FTP的目标是:(1)提高...
1个目标文件,JNDI的使用例子,有源代码,可以下载参考,JNDI的使用,初始化Context,它是连接JNDI树的起始点,查找你要的对象,打印找到的对象,关闭Context…… ftp文件传输 2个目标文件,FTP的目标是:(1)提高...
1个目标文件,JNDI的使用例子,有源代码,可以下载参考,JNDI的使用,初始化Context,它是连接JNDI树的起始点,查找你要的对象,打印找到的对象,关闭Context…… ftp文件传输 2个目标文件,FTP的目标是:(1)提高...