将XML数据填充到TreeView中
文档及代码下载:http://www.dingos.cn/index.php?topic=1899.0
介绍
当菜单项是经常改变时,从XML文档中创建TreeView才当是非常有用的。例如,使用XML作为数据库存储记录。
这里有个简单示例。以防混淆这个例子比较简单。
背景
对XML、TreeView控件的应用,在Visual Studio中有助于理解这些步骤。
使用代码
注意:这个解决方案(xml2treeviewmenuSolution)是VS2010创建。
添加一个XML文件到项目中并命名为“menu.xml”。根据菜单项编辑XML文件。
<?xml version="1.0" encoding="utf-8" ?>
<root>
<folder title='folder 1a' >
<record title='record 1a1' />
<record title='record 1a2' />
<folder title='folder 1b'>
<record title='record 1b1' />
</folder>
</folder>
<folder title='folder 2a' >
<record title='record 2a1' />
</folder>
<folder title='folder 3a' >
<record title='record 3a1' />
<record title='record 3a2' />
</folder>
</root>
从Visual
Studio工具箱中将TreeView控件拖入Windows窗体中。在这个例子,命名控件为“treeViewMenu”。使用using添加对XML类的引用。
using System.Xml;
using System.Xml.XPath;
创建一个XMLDocument对象用于保存文件。
public partial class Form1 : Form{
private XmlDocument docXML = new XmlDocument();
当窗体加载时,从XML文件中加载填充TreeView控件的XML文档。
private void Form1_Load(object sender, EventArgs e){
docXML.Load("menu.xml"); // 加载XML文件
populateBaseNodes(); // 填充所有根节点
}
从第一级<folder>节点开始填充。将每个根节点添加到树中,并为当前根据点添加子节点。
private void populateBaseNodes(){
treeViewMenu.Nodes.Clear(); // 清楚已存在的项
treeViewMenu.BeginUpdate(); // 开始更新TreeView
TreeNode treenode;
treenode = treeViewMenu.Nodes.Add("Folders");
XmlNodeList baseNodeList = docXML.SelectNodes("root/folder");
// 获得第一层 <folder> 节点
foreach (XmlNode xmlnode in baseNodeList){
// 变量所有的根节点 <
相关文档:
xml为:
<friendShares>
<totalCount>352</totalCount>
<friendShare>
<code>XXXXXXX</code>
<date>2010-01-15T00:00:00+08:00</date>
<friendId>499</friendId>
<movie>
<code>XXXXXX</code>
<contentId>89718</content ......
java代码
package com.xml.action;
import com.opensymphony.xwork2.ActionContext;
import com.opensymphony.xwork2.ActionSupport;
public class XMLAction extends ActionSupport{
private static final long serialVersionUID = 1L;
private String username;
private String mobile;
public void setUs ......
这篇文章描述如何通过使用FOR XML AUTO更好的控制XML输出格式。例如添加XML标记。用这个来替代难于理解的FOR XML EXPLICIT 语句。如果你在应用程序中即将反序列化输出的XML,你就会觉得这个信息对你有用。
在For XML从句中,您通常使用下列方式之一:
RAW
AUT ......
private XmlDocument xmlDoc;
private void btnCreateXml_Click(object sender, EventArgs e)
{
//自 ......