刹那间

原创
2014/05/21 17:22
阅读数 91

给你一段xml,自定义的xml,例如:<a>aaa<b>bbb<c>ccc<d>ddd...</d></c></b></a>

要求,解析并输出这一段xml,然后将其特性展现出来,规则是每一个node的特性是各xml节点定义的累加,比如ccc的特性:a+b+c。

当时的回答:遍历两次,第一次将每一个元素的节点按顺序组装到一个<key,value>中去,然后在遍历这个数据结构,将特性展现出来即可。

接下来的问题:有没有更好的方案,一边遍历一边输出,也就只是遍历一次?

可能是当时紧张、或者自卑的原因,就是想不出该怎么弄。第二天骑自行车上班,快到公司了,突然就来了灵感: 遍历的同时,维护一个堆栈,遇到一个xml节点的开始入栈,遇到一个xml节点的结束,就做相应的出栈,遇到元素,就将当前堆栈的所有特性加到该元素上,是不是就OK了?

展开阅读全文
打赏
0
3 收藏
分享
加载中
更多评论
打赏
0 评论
3 收藏
0
分享
返回顶部
顶部