时间:2021-05-20
本文实例讲述了c#递归生成XML的方法。分享给大家供大家参考。具体实现方法如下:
这里结合网上搜到的资料,写了个递归生成xml,经过调试可以使用,数据库结构如下图所示:
代码如下:
复制代码 代码如下:using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using System.Xml;
//using System.Data;
using System.Data.SqlClient;
namespace WindowsApplication1
{
public partial class frmReadXML : Form
{
public frmReadXML()
{
InitializeComponent();
}
public string connstr = System.Configuration.ConfigurationManager.AppSettings["connstr"].ToString();
private void frmReadXML_Load(object sender, EventArgs e)
{
SqlConnection conn = new SqlConnection(connstr);
conn.Open();
SqlCommand comm = new SqlCommand();
comm.CommandText = "select * from Nationals";
comm.Connection = conn;
comm.CommandType = CommandType.Text;
SqlDataAdapter sda = new SqlDataAdapter();
sda.SelectCommand = comm;
DataSet ds = new DataSet();
sda.Fill(ds);
XmlDocument doc = new XmlDocument();
doc.AppendChild(doc.CreateXmlDeclaration("1.0","",""));
XmlElement rootnode = doc.CreateElement("root");
doc.AppendChild(rootnode);
CreateXMLtree(ds,doc,"",(XmlElement)null);
}
DataRow[] dr;
public void CreateXMLtree(DataSet ds, XmlDocument doc, string parentCode,XmlElement parentNode)
{
if (parentCode == "")
{
dr = ds.Tables[0].Select("parentCode=''");
}
else
{
dr = ds.Tables[0].Select("parentCode='" + Convert.ToString(parentCode) + "'");
}
XmlElement tempNode;
foreach (DataRow drv in dr)
{
if (parentCode == "")
{
tempNode = doc.CreateElement("c"+drv["Code"].ToString()); //创建一级节点
tempNode.SetAttribute("name", drv["name"].ToString()); //创建属性
//tempNode.InnerText = drv["name"].ToString();
doc.DocumentElement.AppendChild(tempNode);//添加一级节点
CreateXMLtree(ds,doc,drv["Code"].ToString(),tempNode);
}
else
{
tempNode = doc.CreateElement("c"+drv["Code"].ToString().Replace(".", ""));
tempNode.SetAttribute("name", drv["name"].ToString());
//tempNode.InnerText = drv["name"].ToString();
parentNode.AppendChild(tempNode);
CreateXMLtree(ds, doc, drv["Code"].ToString(), tempNode);
}
}
doc.Save(AppDomain.CurrentDomain.BaseDirectory+"/xxx.xml");
}
}
}
希望本文所述对大家的C#程序设计有所帮助。
声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。
本文实例讲述了C#使用XML序列化操作菜单的方法。分享给大家供大家参考。具体分析如下:之前的一篇文章《C#递归读取XML菜单数据的方法》没使用XML序列化来操作
本文实例讲述了C#递归读取XML菜单数据的方法。分享给大家供大家参考。具体分析如下:最近在研究一些关于C#的一些技术,纵观之前的开发项目的经验,做系统时显示系统
本文实例讲述了C#递归方法实现无限级分类显示效果。分享给大家供大家参考,具体如下:运行效果如下图所示:具体代码如下:C#无限级分类递归显示示例span{floa
通过C#动态生成图书信息XML文件(Books.xml),文件如下:复制代码代码如下:HarryPotterJK.Rowling2005-08-1529.99L
本文实例讲述了C#自定义处理xml数据类。分享给大家供大家参考。具体分析如下:这个C#类专门用户处理xml数据,可以大大简化xml的操作,类中封装了常用的xml