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();
}
}
分享到:
相关推荐
而"sqlsever2005表jdom树.rar"可能包含了SQL Server 2005相关的数据库表信息,以及生成的XML树示例。如果要详细了解这些文件的内容,需要解压并查看源码。 总之,JDOM提供了一个强大且灵活的工具,使开发人员能够在...
在IT行业中,构建一个能够递归生成XML树的系统是一项常见的任务,特别是在处理复杂的数据结构时。本项目结合了Spring、iBatis和JDom这三个强大的技术,它们各自扮演着不同的角色来实现这一目标。 首先,Spring是一...
生成XML字符串时,JDOM提供了一套直观的API来构造和序列化XML文档。 5. StAX (Streaming API for XML) StAX是Java提供的一个流式解析API,它介于DOM和SAX之间。像SAX一样,StAX也是事件驱动的,但它允许程序员以拉...
1. **SAXBuilder**:通过监听XML解析过程中的事件来构建JDOM树。 2. **DOMBuilder**:一次性加载整个XML文档到内存,生成Document对象。 **创建XML文档** 使用JDOM创建XML文档涉及以下几个步骤: 1. 创建`...
JDOM是一个专为Java设计的XML处理库,它提供了一种高效且方便的方式来读取、修改和生成XML文档。 ### JDOM解析XML的基本概念 1. **DOM(Document Object Model)**:DOM是一种树形结构,将XML文档解析为一系列的...
在JDOM中,XML文档被表示为一个树形结构,主要由三个基本元素组成:`Element`代表XML元素,`Attribute`表示元素的属性,而`Document`则封装了整个XML文档。通过这些类,你可以创建新的XML文档,或者读取并修改已有的...
JDOM的目标是为Java开发者提供一个高效且易于使用的接口来处理XML文档。相比于DOM(Document Object Model),JDOM在Java环境中更为轻量级,因为它无需依赖Java平台的额外组件,如SAX或DOM解析器。 **XML解析方式**...
Oracle开发人员在处理XML文档时,常常会遇到各种挑战,如解析、操作和生成XML数据。JDOM(Java Document Object Model)是一个专为Java优化的开源XML处理库,旨在简化这些任务。它提供了与W3C DOM类似的功能,但更...
总的来说,JDOM-1.0是Java程序员处理XML的强大工具,通过其简洁的API,使得XML的解析、操作和生成变得简单易行。无论是在构建复杂的应用程序还是进行数据交换,JDOM都能提供可靠的解决方案。在实际开发中,根据项目...
JDom主要由三部分构成:SAXBuilder用于从XML源生成Element对象树,Element作为文档的基本结构单元,以及DOMBuilder用于将JDom对象转换回DOM对象。 3. **XML读取** 使用JDom读取XML文件通常涉及以下步骤: - 创建...
本文将详细介绍生成和解析XML的四种主要方法:DOM、DOM4J、SAX和JDOM。 1. DOM(Document Object Model) DOM是W3C组织推荐的一种解析XML的标准方式。它将XML文档视为一个树形结构,每个节点代表XML文档的一部分。...
在XML处理中,JDOM提供了一种高效且灵活的方式来解析XML文档,构建XML树,以及对XML文档进行查询和修改。通过导入jdom-1.0.jar,开发者可以获得如解析XML文件、创建新的XML结构、更新已有元素或属性、执行XPath查询...
Java DOM(Document Object Model)是一种基于树形结构的XML文档处理模型,它允许程序员通过对象接口来访问和操作XML文档的各个部分。DOM为XML文档提供了一种内存中的表示方式,使得开发人员可以方便地创建、修改和...
JDOM通过构建DOM(Document Object Model)树来解析XML,DOM是一种与平台和语言无关的接口,可以将XML文档表示为一系列的节点。 **1. JDOM的基本概念** - **Element**: 表示XML文档中的元素,如`<book>`。 - **...
在Java编程语言中,动态生成XML文件是一种常见的需求,特别是在处理数据交换、配置文件或与Web服务交互时。本文将详细解析如何使用JDOM库在Java中动态创建XML文档,通过分析给定代码示例来深入理解其核心知识点。 #...
总的来说,`dhtmlxtree`、`servlet`和`jdom`的结合使用,为我们提供了一种高效、灵活的方式,动态地从数据库生成交互式的树形视图,尤其适用于需要展示层级关系的数据场景。无论是在传统的Java Web应用还是现代的MVC...
XML(eXtensible Markup Language...总的来说,JDOM是一个强大的Java XML处理库,它提供了直观且高效的API,使得XML的解析、操作和生成变得简单易行。对于任何需要处理XML的Java项目,JDOM都是一个值得考虑的优秀选择。
使用JDOM解析这样的文件,可以先创建一个`SAXBuilder`实例,然后调用`build()`方法读取XML文件,生成一个`Document`对象。这个`Document`对象就是整个XML文档的根节点,下面挂载着所有其他的元素节点。 接下来,...
标题与描述概述的知识点主要集中在使用jdom4j库解析并生成XML文件的过程,特别是针对组织结构树的生成。下面将详细阐述此过程中的关键步骤和技术细节。 ### jdom4j解析XML实例详解 #### 生成XML文档 在示例代码中...
它提供了一个完全基于Java的API,使得XML数据能够直接映射为Java对象,从而方便地进行读取、修改和生成XML文档。 JDOM的核心在于它提供了更加符合Java编程习惯的类和方法,比如直接操作XML元素、属性和文本的类,这...