树形结构转换xml总结

树形结构转换xml总结

      这几天碰见个问题,需要将库里的树形结构存储数据转换为xml形式,从而可以利用XMind进行查看。类似这种结构:

0 -1 父节点
101 0 节点1
102 0 节点2
2101001 101 节点4

一、基本思路

      从库里导出数据存入文件中,也可以直接从库中读取数据。

二、实现步骤

1、定义节点类型:

import java.util.List;

public class Node {

	private String id;        //节点id
	private String parentId;  //父节点id
	private String Text;  //节点名称
	private List<Node> children;  //子节点
	
	
	public Node(String id, String parentId, String Text) {
		super();
		this.id = id;
		this.parentId = parentId;
		this.Text = Text;
	}
	
		
	public Node(String id, String Text, Node parent) {
		super();
		this.id = id;
		this.Text = Text;
		this.parentId = parent.getId();
	}
	
	public String getId() {
		return id;
	}
	public void setId(String id) {
		this.id = id;
	}
	public String getParentId() {
		return parentId;
	}
	publ
  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
好的,如果您需要将构建好的树形结构返回给前端,可以使用Java中的JSON库将树形结构转换为JSON格式。下面是一个简单的示例代码: 首先,我们需要在pom.xml中引入json库的依赖: ``` <dependency> <groupId>com.google.code.gson</groupId> <artifactId>gson</artifactId> <version>2.8.6</version> </dependency> ``` 然后,我们需要修改TreeNode类,添加一个toJson方法,将树形结构转换为JSON格式: ``` import com.google.gson.Gson; import com.google.gson.GsonBuilder; import java.util.HashMap; import java.util.Map; public class TreeNode { private String name; private Map<String, TreeNode> children; public TreeNode(String name) { this.name = name; this.children = new HashMap<>(); } public String getName() { return name; } public Map<String, TreeNode> getChildren() { return children; } public void addChild(TreeNode child) { this.children.put(child.getName(), child); } public String toJson() { Gson gson = new GsonBuilder().setPrettyPrinting().create(); return gson.toJson(this); } } ``` 上面的代码中,toJson方法使用了Gson库将树形结构转换为JSON格式,并使用了setPrettyPrinting方法进行了格式化。 接下来,我们可以在Main类中调用toJson方法将树形结构转换为JSON格式,并返回给前端。下面是一个简单的示例代码: ``` import java.util.*; public class Main { public static void main(String[] args) { List<String> paths = Arrays.asList( "通道1", "通道1.设备1", "通道1.设备1.DECNO", "通道1.设备1.DECSTATUS", "通道1.设备1.TAG2", "通道1.设备1.technology", "通道1.设备1.TIME", "通道1.设备1.v1", "通道1.设备1.v2", "通道2", "通道2.设备1", "通道2.设备1.TAG1", "西门子PLC", "西门子PLC.s7-300" ); TreeNode root = TreeNode.buildTree(paths); String json = root.toJson(); System.out.println(json); } } ``` 运行上面的代码,可以得到如下的JSON输出结果: ``` { "name": "", "children": { "通道1": { "name": "通道1", "children": { "设备1": { "name": "设备1", "children": { "DECNO": { "name": "DECNO", "children": {} }, "DECSTATUS": { "name": "DECSTATUS", "children": {} }, "TAG2": { "name": "TAG2", "children": {} }, "technology": { "name": "technology", "children": {} }, "TIME": { "name": "TIME", "children": {} }, "v1": { "name": "v1", "children": {} }, "v2": { "name": "v2", "children": {} } } } } }, "通道2": { "name": "通道2", "children": { "设备1": { "name": "设备1", "children": { "TAG1": { "name": "TAG1", "children": {} } } } } }, "西门子PLC": { "name": "西门子PLC", "children": { "s7-300": { "name": "s7-300", "children": {} } } } } } ``` 需要注意的是,上面的代码中只是简单地将树形结构转换为JSON格式,如果您需要进行更复杂的操作,可以根据实际情况进行扩展。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值