xml节点为

<?xml version="1.0" encoding="UTF-8"?>
<item text="人物" check="false" id="1244744798">
	<item text="宗教人物" check="false" id="1459560311">
		<item text="神话人物" check="false" id="748188040">
			<item text="西王母" check="false" id="1760385975"/>
			<item text="女娲" check="false" id="112887725"/>
			<item text="伏羲" check="false" id="1564822548"/>
			<item text="仙女" check="false" id="1809977107"/>
			<item text="东王公" check="false" id="1953239830"/>
		</item>
	</item>
</item>


Java程序代码

static List<String> Ontologys = new ArrayList<String>(500);
/**
 * 按先根顺序生成树
 *
 * @param xmlTreePath
 * @return
 */
public String generatePreRootOrderTree(String xmlTreePath)
{
	Element NewTreeRoot = XmlHelper.loadXmlFile(FileArray.Tree_Xml).getRootElement();
	nestedTree(NewTreeRoot);
	XmlHelper.saveXmlFile(NewTreeRoot.getDocument(), FileArray.PreRootOrderTree_Xml);
	return "保存了文件" + FileArray.PreRootOrderTree_Xml;
}
@SuppressWarnings("unchecked")
private void nestedTree(Element tree)
{
	List<Element> elements = tree.selectNodes("item[@check=\"false\"]");
	if (elements != null && elements.size() > 0)
	{
		Element e = elements.get(0);
		e.attribute("check").setValue("true");
		if (!Ontologys.contains(e.attributeValue("text")))
		{
			Ontologys.add(e.attributeValue("text"));
			e.attribute("id").setValue(nestedIndex++ + "");
			nestedTree(elements.get(0));
		}
		else
		{
			tree.remove(e);
			nestedTree(tree);
		}
	}
	else
	{
		if (tree.getParent() != null) nestedTree(tree.getParent());
	}
}
public static void main(String... a)
{
	TreeManager tm = TreeManager.getInstance();
	System.out.println(tm.generatePreRootOrderTree(FileArray.Tree_Xml));
}

生成的结果:

<?xml version="1.0" encoding="UTF-8"?>
<item text="人物" check="true" id="0">
	<item text="宗教人物" check="true" id="1">
		<item text="神话人物" check="true" id="2">
			<item text="西王母" check="true" id="3"/>
			<item text="女娲" check="true" id="4"/>
			<item text="伏羲" check="true" id="5"/>
			<item text="仙女" check="true" id="6"/>
			<item text="东王公" check="true" id="7"/>
		</item>
	</item>
</item>