现在的位置: 首页 > 综合 > 正文

简单无限级树 生成XML代码

2013年03月01日 ⁄ 综合 ⁄ 共 1991字 ⁄ 字号 评论关闭
????????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"));
????????}

抱歉!评论已关闭.