简单无限级树 生成XML代码

???????? private ? void ?makeXml( string ?xmlPath)
????????
{
????????????
string?sqlStr?=?"SELECT?*?FROM?tree?ORDER?BY?treenode";
????????????OleDbDataAdapter?da?
=?new?OleDbDataAdapter(sqlStr,?conn);
????????????DataTable?dt?
=?new?DataTable();
????????????da.Fill(dt);
????????????da.Dispose();
????????????
int?ptreeDepth?=?-1;
????????????
int?treeDepth?=?0;
????????????XmlTextWriter?xw?
=?new?XmlTextWriter(xmlPath,?null);
????????????xw.Formatting?
=?Formatting.Indented;
????????????xw.IndentChar?
=?' ';
????????????xw.Indentation?
=?1;
????????????xw.WriteStartDocument();
????????????xw.WriteStartElement(
"treeRoot");

????????????
foreach(DataRow?dr?in?dt.Rows)
????????????
{
????????????????treeDepth?
=?charCount(dr["treenode"].ToString(),?',');

????????????????
if(treeDepth?==?ptreeDepth)
????????????????
{
????????????????????xw.WriteEndElement();
????????????????????xw.WriteStartElement(
"treeBranch");
????????????????}

????????????????
else?if(treeDepth?==?ptreeDepth?+?1)
????????????????
{
????????????????????xw.WriteStartElement(
"treeBranch");
????????????????}

????????????????
else
????????????????
{
????????????????????
for(int?i?=?0;?i?<?ptreeDepth?-?treeDepth;?i++)
????????????????????
{
????????????????????????xw.WriteEndElement();
????????????????????}


????????????????????xw.WriteEndElement();
????????????????????xw.WriteStartElement(
"treeBranch");
????????????????}


????????????????xw.WriteAttributeString(
"treeid",?dr["treeid"].ToString());
????????????????xw.WriteAttributeString(
"treeNode",?dr["treenode"].ToString());
????????????????xw.WriteElementString(
"treeTitle",?dr["treetitle"].ToString());
????????????????ptreeDepth?
=?treeDepth;
????????????}


????????????
for(int?i?=?0;?i?<?treeDepth;?i++)
????????????
{
????????????????xw.WriteEndElement();
????????????}


????????????xw.WriteEndElement();
????????????xw.WriteEndElement();
????????????xw.Flush();
????????????xw.Close();
????????}


????????
private ? void ?lbMakeXml_Click( object ?sender,?System.EventArgs?e)
????????
{
????????????makeXml(Server.MapPath(
"tree.xml"));
????????}
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值