您的位置:首页 > 编程语言

简单无限级树 生成XML代码

2004-08-19 12:25 543 查看

????????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?



????????????????????

{


????????????????????????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?



????????????

{


????????????????xw.WriteEndElement();


????????????}




????????????xw.WriteEndElement();


????????????xw.WriteEndElement();


????????????xw.Flush();


????????????xw.Close();


????????}




????????private?void?lbMakeXml_Click(object?sender,?System.EventArgs?e)




????????

{


????????????makeXml(Server.MapPath("tree.xml"));


????????}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: