如何用C#生成如下下表关系的XML文件,XML需以这种格式
<?xml version="1.0" encoding="utf-8" ?>
<root>
<c01 code="01" name="政治">
<c0101 code="01.01" name="国家概况">
<c01010101 code="01.01.01" name="政治体制">
<c01010102 code="01.01.01.02" name="领导体制"></c01010102>
</c01010101>
</c0101>
</c01>
<c01 code="02" name="选举制">
... ....... . . .
</c02>
</root>
private string data2XML(DataTable treeTable)
{
StringBuilder sb = new StringBuilder();
DataRow[] rows = treeTable.Select("len(Code)=2");
foreach(DataRow dr in rows)
{
string thisCode = dr["Code"].ToString();//
sb.AppendFormat('',....);//开始标记
sb.Append(getSubNode(thisCode ,treeTable));
sb.Append('',....);//结束标记
}return sb.ToString();
}
private string getSubNode(string parentCode,DataTable treeTable)
{
StringBuilder sb = new StringBuilder();
DataRow[] rows = treeTable.Select("ParentCode='" + parentCode + "'");
foreach(DataRow dr in rows)
{
string thisCode = dr["Code"].ToString();//
sb.AppendFormat('',....);//开始标记
sb.Append(getSubNode(thisCode,treeTable));//递归在这~~
sb.Append('',....);//结束标记
}
return sb.ToString();
}
为了性能 可以用同一个StringBuilder不用每次都新建一个StringBuilder
直接在网页上敲的代码,不保证没有错误~~
你是说XML转table 还是table 转 XML?
CookComputing.XmlRpc.dll
以前我也遇见到过类似的问题,要做一个 ul li 的嵌套的树型列表。
建议不要用递归的思路,不然会把你给绕死,说不定也会把计算机绕死。
其实可以用 order by code asc, 直接按顺序答应出来,然后做一些适当的 replace 就能达到你想要的树型嵌套效果