关于网友提出的“ 生成XML的问题,帮忙解决一下,急”问题疑问,本网通过在网上对“ 生成XML的问题,帮忙解决一下,急”有关的相关答案进行了整理,供用户进行参考,详细问题解答如下:
问题: 生成XML的问题,帮忙解决一下,急
描述: public void xmlForTreeview()
{
conn sqlconn = new conn();
SqlConnection sqlcon= sqlconn.createconn();
sqlcon.Open();
SqlCommand cmd = new SqlCommand("select * from usertypetb ",sqlcon);
SqlDataReader dr= cmd.ExecuteReader();
XmlDocument xd = new XmlDocument();
XmlNode prevNode;
XmlElement childNode;
int currlevel;
int prevlevel = 0;
XmlDeclaration xde;
xde = xd.CreateXmlDeclaration("1.0", null, null);
xde.Encoding = "UTF-8";
xd.AppendChild(xde);
prevNode = xd.CreateNode(System.Xml.XmlNodeType.Element, "会员管理", "http://schemas.microsoft.com/AspNet/SiteMap-File-1.0");
xd.AppendChild(prevNode);
while (dr.Read())
{
childNode = xd.CreateElement("classNode");
childNode.SetAttribute("typeid", dr["typeid"].ToString().Trim());
childNode.SetAttribute("typename", dr["typename"].ToString().Trim());
childNode.SetAttribute("description", dr["typename"].ToString().Trim());
currlevel = dr["typeid"].ToString().Length / 4;
if (prevlevel < currlevel)
{
prevNode.AppendChild(childNode);
}
else if (prevlevel == currlevel)
{
prevNode.ParentNode.AppendChild(childNode);
}
else
{
for (int i = 0; i <= prevlevel - currlevel; i++)
{
prevNode = prevNode.ParentNode;
}
prevNode.AppendChild(childNode);
}
prevNode = childNode;
prevlevel = currlevel;
}
xd.Save(System.Web.HttpContext.Current.Server.MapPath("../XML/classXML.xml"));
sqlcon.Close();
}
大家看一下我这个生成XML的代码哪儿错了,他老是说倒数第八行,即prevNode.AppendChild(childNode);这句"此文档已具有“DocumentElement”节点"
数据库的结构如下:
typename typeid fatherid
会员管理 0001 0
高级会员 00010001 0001
一般会员 00010002 0001
黄金会员 000100020001 00010002
铂金会员 000100020002 00010002
以上介绍了“ 生成XML的问题,帮忙解决一下,急”的问题解答,希望对有需要的网友有所帮助。
本文网址链接:http://www.codes51.com/itwd/3403797.html