如题
解决方案 »
- 线程
- xp+vs2005下设计的水晶报表,放到win2003上打印,格式偏差,何故?
- 后台代码,如何取JavaScript的一个变量值?
- asp.net datagridview 分页 存储过程
- ASP.NET在关于动态生成GIF图片的问题
- 小菜一碟:TreeView的ToolTip,原来这样简单!
- Request.IsAuthenticated到底怎么用的?
- 关于从数据库中下载image字段的问题~ 请求帮助
- 我设置的datagrid明明只有14个column,为什么要显示28列????
- 请问在ASP.NET中使一个页面显示几秒钟后,自动跳转到指定的页面去!
- 求助关于实体的应用
- 获得静态页面地址问题
//XML每行的内容
private string xmlLine = "";
//用于写XML文件
private StreamWriter sr; private void Form1_Load(object sender, EventArgs e)
{
TreeNode tb = new TreeNode();
tb.Text = "父节点";
TreeNode tn = new TreeNode();
tn.Text = "ceshi";
TreeNode ts = new TreeNode();
ts.Text = "tree";
tn.Nodes.Add(ts);
tb.Nodes.Add(tn);
tn = new TreeNode();
tn.Text = "完全";
tb.Nodes.Add(tn);
treeView1.Nodes.Add(tb);
} private void button1_Click(object sender, EventArgs e)
{
//XmlDocument doc = new XmlDocument();
//XmlElement Node1 = doc.CreateElement("charts");//创建节点anychart子节点charts
//doc.AppendChild(Node1);
//XmlElement Node4 = doc.CreateElement("chart_settings");//创建节点chart第二个子节点chart_settings
//doc.DocumentElement.AppendChild(Node4);
//doc.Save("c:\\text.xml"); //保存xml exportToXml(this.treeView1, "C:\\text.xml"); }
/// <summary>
/// 将TreeView中导出为XML数据
/// </summary>
/// <param name="tv">TreeView控件</param>
/// <param name="filename">XML文件的保存路径</param>
public void exportToXml(TreeView tv, string filename)
{
sr = new StreamWriter(filename, false, System.Text.Encoding.UTF8);
//写文件头部内容
//下面是生成RSS的OPML文件
sr.WriteLine("<?xml version=\"1.0\" encoding=\"UTF-8\"?>");
sr.WriteLine("<opml version=\"1.0\">");
sr.WriteLine("<head>");
sr.WriteLine("<title>RSS</title>");
sr.WriteLine("</head>");
sr.WriteLine("<body>"); //遍历根节点
foreach (TreeNode node in tv.Nodes)
{
if (node.Nodes.Count == 0)
{
xmlLine = GetRSSText(node);
}
else
{
xmlLine = GetDirectoryText(node);
} sr.WriteLine(xmlLine); //递归遍历节点
parseNode(node);
} //写文件尾部内容
sr.WriteLine("</body>");
sr.WriteLine("</opml>");
sr.Close();
} //递归遍历节点内容,最关键的函数
private void parseNode(TreeNode tn)
{
IEnumerator ie = tn.Nodes.GetEnumerator(); while (ie.MoveNext())
{
TreeNode ctn = (TreeNode)ie.Current; //为最底层节点,即该节点为RSS节点
if (ctn.Nodes.Count == 0)
{
xmlLine = GetRSSText(ctn);
sr.WriteLine(xmlLine);
}
else//不是最底层节点,即该节点为目录节点
{
xmlLine = GetDirectoryText(ctn);
sr.WriteLine(xmlLine);
} //如果还有子节点则继续遍历
if (ctn.Nodes.Count > 0)
{
parseNode(ctn);
}
} sr.WriteLine("</outline>");
} //成生RSS节点的XML文本行
private string GetRSSText(TreeNode node)
{
//根据Node属性生成XML文本
string rssText = "<outline type=\"rss\" text=\"" + node.Text + "\" xmlUrl=\"URL\"/>"; return rssText;
} //成生目录节点的XML文本行
private string GetDirectoryText(TreeNode node)
{
//根据Node属性生成XML文本
string directoryText = "<outline text=\"" + node.Text + "\">"; return directoryText;
}
读取节点写入XML中。平时怎么从XML中获得数据就怎么把数据送回去
{
XmlDocument doc = xmlNode.OwnerDocument;
foreach (TreeNode treeNode in treeNodes)
{
XmlNode element = doc.CreateNode("element", "Item", "");
XmlAttribute attr = doc.CreateAttribute("Title");
attr.Value = treeNode.Text;
element.Attributes.Append(attr);
element.AppendChild(doc.CreateCDataSection(treeNode.Tag.ToString()));
xmlNode.AppendChild(element); if (treeNode.Nodes.Count > 0)
{
TreeNode2Xml(treeNode.Nodes, element);
}
}
}