将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){
// 变量所有的根节点 <
相关文档:
使用SAX解析和DOM解析的实例
收藏
document.body.oncopy = function() {
if (window.clipboardData) {
s ......
java 代码
import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import org.w3c.dom.Document;
import org.w3c.dom.Element;
import org.w3c.dom.NodeList; ......
// TestXml.cpp : Defines the entry point for the console application.
//
#include "stdafx.h"
#include <iostream>
#include <windows.h>
#include "tinyxml.h"
#include "lang.h"
#include <string>
using namespace std;
using namespace std;
#pragma comment(lib, "tinyxmld.lib")
B ......
books.xml:
Xml代码
<?xml version="1.0" encoding="UTF-8"?>
<books>
<!--This is a test for dom4j, jakoes, 2007.7.19-->
<book show="yes" ......
在使用Dom4j解析xml文档时,我们很希望有一种类似正则表达式的东西来规范查询条件,而xpath正是这样一种很便利的规则吧.
以下是本人用写的一个类,摘取部分代码;
Java代码
Java代码
String xmlName = path + "/" + userName + ".xml"; &n ......