????????
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"));
????????}
???????? {
????????????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"));
????????}