zTree是一款基于jQuery的js树形插件,可以将树形结构的数据以可折叠的树状图的形式进行展现,该组件的Github项目地址为:https://github.com/zTree/zTree_v3。
本文以行政区划树状图为例,简述zTree插件的使用过程。
访问国家民政部网站的URL:http://www.mca.gov.cn/article/sj/tjbz/a/2016/201605/20160506281034.html,可以查看2016年5月中华人民共和国县以上行政区划代码。
访问国家统计局网站的URL:http://www.stats.gov.cn/tjsj/tjbz/xzqhdm/201504/t20150415_712722.html,即可浏览最新县及县以上行政区划代码(截止2014年10月31日)。
将页面上的行政区划正文复制并保存在一个文本文件中,命名为xzqh.txt,使用文本编辑器(例如Notepad++)移除文本中的多余空行,并对内容进行校验和修改,参考:https://github.com/qinjiannet/ztree-xzqh.js/blob/master/xzqh.txt。
使用下面的Python代码将行政区划文本转换为以“孩子表示法”存储的树形结构,并使用json进行序列化,Python代码如下:
#encoding=utf-8
import json
#树的后根遍历
def traverse(node, func):
if node and node['children']:
for child in node['children']:
traverse(child, func)
func(node)
#清除节点的多余属性,树使用孩子表示法进行表示
def clearNode(node):
if node:
del node['parent']
del node['depth']
if not node['children']: ...