id parentid name
a1 0 中国
a2 a1 北京
a3 a2 海淀区
a4 a2 东城区
a5 a1 上海
a6 a5 黄浦区
a7 a5 浦东新区
以上数据可以存放到list中我想要的xml:
<?xml version=\"1.0\" encoding=\"UTF-8\"?>
<Item id="a1" name="中国">
<Item id="a2" name="北京">
<Item id="a3" name="海淀区"></item>
<Item id="a4" name="东城区"></item>
</item>
<Item id="a5" name="上海">
<Item id="a6" name="黄浦区"></item>
<Item id="a7" name="浦东新区"></item>
</item>
</item>用递归方式如何做?如有性能要求,怎么做更效率??
a1 0 中国
a2 a1 北京
a3 a2 海淀区
a4 a2 东城区
a5 a1 上海
a6 a5 黄浦区
a7 a5 浦东新区
以上数据可以存放到list中我想要的xml:
<?xml version=\"1.0\" encoding=\"UTF-8\"?>
<Item id="a1" name="中国">
<Item id="a2" name="北京">
<Item id="a3" name="海淀区"></item>
<Item id="a4" name="东城区"></item>
</item>
<Item id="a5" name="上海">
<Item id="a6" name="黄浦区"></item>
<Item id="a7" name="浦东新区"></item>
</item>
</item>用递归方式如何做?如有性能要求,怎么做更效率??
1、拥有扎实的JAVA基础,算法基础。
2、熟悉JAVA多线程编程,JAVA网络编程,并有一年以上的全职编程经验。
3、很好的逻辑思维能力与想像力。
4、熟悉MYSQL数据库,熟练使用SQL语句。
5、勤奋好学,对新知识掌握速度快。
6、踏实肯干,能够很好的进行团队合作,和任务多时的加班。
7、热爱游戏,并希望把游戏编程当成自己的事业。
有意者可投简历至:Email: [email protected]
也可以用dom创建document;用xmlwriter写成文件
{ private String id; private String name; private String pid; public Test()
{
} public Test(String id, String name, String pid)
{
this.id = id;
this.name = name;
this.pid = pid;
} public String getPid()
{
return pid;
} public void setPid(String pid)
{
this.pid = pid;
} public String getId()
{
return id;
} public void setId(String id)
{
this.id = id;
} private static StringBuffer sbuf = new StringBuffer(); /**
* 测试方法
*/
public static void main(String[] args)
{
Test[] users = new Test[]{
new Test("a1", "中国", null),
new Test("a2", "北京", "a1"),
new Test("a5", "上海", "a1"),
new Test("a3", "海淀区", "a2"),
new Test("a4", "东城区", "a2"),
new Test("a6", "黄浦区", "a5"),
new Test("a7", "浦东新区", "a5")};
System.out.println(new Test().toXML(users));
} public String toXML(Test[] t)//构造树
{
String id = ""; for (int i = 0; i < t.length; i++)
{
if (null == t[i].getPid())
{
sbuf.append("<item text=\"" + t[i].getId() + "\" id=\""
+ t[i].getName() + "\">\n");
id = t[i].getId();
} }
forSort(t, id);
sbuf.append("</item>");
return sbuf.toString();
} public String getName()
{
return name;
} public void setName(String name)
{
this.name = name;
} public String forSort(Test[] t, String id)//递归方法
{
for (int i = 0; i < t.length; i++)
{
if (null != t[i].pid)
{
if (id == t[i].getPid())
{
sbuf.append("<item text=\"" + t[i].getId() + "\" id=\""
+ t[i].getName() + "\">\n");
forSort(t, t[i].getId());
sbuf.append("</item>\n");
}
}
}
return sbuf.toString();
}
}以上是递归方式获取xml格式string字符串
有没有更效率的??
创建 销毁对象要比递归好像少一些不对的话请拍 别爆粗口 \(^o^)/~
建议在数据库表中建立一个排序字段,利用这个字段一次就可以生成你想用的数据层级
不懂,在google上收下。