62,254
社区成员
发帖
与我相关
我的任务
分享
SqlDataAdapter da = new SqlDataAdapter();
da.SelectCommand = new SqlCommand("select 部门,姓名 from tb order by 部门", conn);
DataTable dt = new DataTable();
da.Fill(dt);
XmlDocument doc = new XmlDocument();
XmlElement root = doc.CreateElement("folder");
root.SetAttribute("state", "unchecked");
root.SetAttribute("label", "全部");
doc.AppendChild(root);
XmlElement cur_dept = null;
foreach (DataRow row in dt.Rows)
{
if (cur_dept == null || row["部门"] as string != cur_dept.GetAttribute("label"))
{
XmlElement dept = doc.CreateElement("folder");
dept.SetAttribute("state", "unchecked");
dept.SetAttribute("isBranch", "true");
dept.SetAttribute("label", row["部门"] as string);
root.AppendChild(dept);
cur_dept = dept;
}
XmlElement employee = doc.CreateElement("folder");
employee.SetAttribute("state", "unchecked");
employee.SetAttribute("isBranch", "false");
employee.SetAttribute("label", row["姓名"] as string);
cur_dept.AppendChild(employee);
}
doc.Save(@"d:\test.xml");
<folder state="unchecked" label="全部">
<folder state="unchecked" isBranch="true" label="技术科" >
<folder state="unchecked" isBranch="false" label="张三" />
<folder state="unchecked" isBranch="false" label="李四" />
<folder state="unchecked" isBranch="false" label="王五" />
<folder state="unchecked" isBranch="false" label="赵六" />
......
</folder>
<folder state="unchecked" isBranch="true" label="生产科" >
<folder state="unchecked" isBranch="false" label="牛七" />
<folder state="unchecked" isBranch="false" label="马八" />
......
</folder>
......
</folder><folder state="unchecked" label="全部">
<folder state="unchecked" isBranch="true" label="技术科" >
<folder state="unchecked" isBranch="false" label="张三" />
<folder state="unchecked" isBranch="false" label="李四" />
<folder state="unchecked" isBranch="false" label="王五" />
<folder state="unchecked" isBranch="false" label="赵六" />
......
</folder>
<folder state="unchecked" isBranch="true" label="生产科" >
<folder state="unchecked" isBranch="false" label="牛七" />
<folder state="unchecked" isBranch="false" label="马八" />
......
</folder>
......
</folder>