数据表生成特定格式的xml

wsxcy66668888 2009-12-12 06:37:09
从数据库中查询一张表的数据
select 部门,姓名 from tb
如何才能生成下面的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>
...全文
86 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
jshi123 2009-12-12
  • 打赏
  • 举报
回复

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");

wuyq11 2009-12-12
  • 打赏
  • 举报
回复
DataSet ds = new DataSet();
ds.WriteXml(@"C:\temp.xml");

XmlDocument xmlDoc=new XmlDocument();
xmlDoc.Load("a.xml");
XmlNode root=xmlDoc.SelectSingleNode("");
shelless 2009-12-12
  • 打赏
  • 举报
回复
有个操作xml的类
好久没用了,说不清了。。
glassbody 2009-12-12
  • 打赏
  • 举报
回复
应该写一个类,写方法把表转换成xml的,具体方法我也记不清了,有时间给你查一下..
wsxcy66668888 2009-12-12
  • 打赏
  • 举报
回复
<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>
wsxcy66668888 2009-12-12
  • 打赏
  • 举报
回复
人员姓名节点应该缩进的
wsxcy66668888 2009-12-12
  • 打赏
  • 举报
回复
从数据库中查询一张表的数据
select 部门,姓名 from tb
如何才能生成下面的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>

62,254

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧