关于树型结构返回值,大家都是怎么组织的呢

直入正题,目前公司树形组件基于jquery的simple tree(http://news.kg/wp-content/uploads/tree/)扩展而成,基于后端的xml格式
		<menuitem id="11" class="menumain" text="samples" action="samples/gettingstart/forward.do">	
			<!-- qucik start-->
			<menuitem menuid="gettingstart"  text="sample.getting.start" action="samples/gettingstart/forward.do" contextmenu="true">
			
					<menuitem menuid="forward" text="sample.getting.start.forward" action="samples/gettingstart/forward.do" contextmenu="true">
					</menuitem>
					<menuitem menuid="helloworld" text="sample.getting.start.helloworld" action="samples/gettingstart/hello.do" contextmenu="true">
					</menuitem>
					<menuitem menuid="simpleCRUD" text="sample.getting.start.simpleCRUD" action="samples/gettingstart/message.do" contextmenu="true">
					</menuitem>
			</menuitem>
		
			<!-- advanced app -->
			<menuitem menuid="advancedused" text="sample.advanced.used" action="samples/subject/message.do?method=doList">
					<menuitem menuid="dispatchCRUD" text="sample.advanced.used.dispatchCRUD" action="samples/subject/message.do?method=doList">
					</menuitem>
					<menuitem menuid="editable" text="sample.advanced.used.editable" action="samples/subject/editable.do">
					</menuitem>

			</menuitem>
		</menuitem>

生成到前端后,对树进行一系列操作(拖拽、增加、删除、修改等),然后通过一个保存按钮将当前的树形结构同步回后端(可能基于xml,也可能存回数据库),问题出在如何返回修改后的树,目前想到两种方案,一种是记录每一步操作,封装成一个array往后台传,例如第一步先删除节点a,第二步将节点b移动到节点c下,等等,缺点是如果我进行了过多操作,这数据量会不会太大?第二种方案比较笨,也是目前想采用的方法,就是得到当前simpletree对象的引用,用js取得其html(一堆嵌套的<ul><li>组合),然后通过正则表达式将其替换成原来的xml格式后返回,不知道大家对于这样的业务场景一般怎么处理的?

你可能感兴趣的:(jquery,数据结构,json,xml,正则表达式)