½«XMLÊý¾ÝÌî³äµ½TreeViewÖÐ
Îĵµ¼°´úÂëÏÂÔØ£ºhttp://www.dingos.cn/index.php?topic=1899.0
½éÉÜ
µ±²Ëµ¥ÏîÊǾ³£¸Ä±äʱ£¬´ÓXMLÎĵµÖд´½¨TreeView²Åµ±ÊǷdz£ÓÐÓõġ£ÀýÈ磬ʹÓÃ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(eXtensible Markup Language)ÊÇÍòÎ¬ÍøÁªÃË(World Wide Web Consortium W3C)¶¨ÒåµÄÒ»ÖÖ¿ÉÀ©Õ¹±êÖ¾ÓïÑÔ¡£
¿ÉÀ©Õ¹ÐÔÖ¸ÔÊÐíÓû§°´ÕÕXML¹æÔò×Ô¶¨Òå±ê¼Ç(tags ±êÇ©)¡£
Ç¿ÏÇáËɱí´ï¶à²ã½á¹¹µÄÊý¾Ý£»¿ÉÀ©Õ¹¡£
Óŵ㣺ƽ̨Î޹أ¬ÓïÑÔÎ޹ء£Éè¼ÆÄ¿±êÊÇÃèÊöÊý¾Ý²¢¼¯ÖÐÓÚÊý¾ÝµÄÄÚÈÝ£¬ÓëÏÔʾ·ÖÀë¡£
ÌáÐÑ£º² ......
ÎÒÏë·ÃÎÊxmlµ±ÖÐijЩÊý¾Ý£¬»òÕßÊÇÏ£ÍûÓиö°´Å¥ÓиöÊäÈëÎı¾µã»÷°´Å¥ºó¹ýÂ˵ôÊäÈëÎı¾µÄÄÚÈÝ£¬¸ÃÈçºÎ×ö£¿
XMLListCollectionÖеĹýÂ˺¯Êý¿ÉÒÔ°ïÎÒÃÇ×öµ½Õâµã£¡Ê¾ÀýµÄ¹Ø¼üº¯ÊýÈçÏ£¬ÖÁÓÚxmlÓÐÐËȤµÄÅóÓÑ×Ô¸öд
import mx.collections.XMLListCollection;
protected var col:XMLListCollection;
protected var menuI ......
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 ......
// 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 ......
ÕâÆªÎÄÕÂÃèÊöÈçºÎͨ¹ýʹÓÃFOR XML AUTO¸üºÃµÄ¿ØÖÆXMLÊä³ö¸ñʽ¡£ÀýÈçÌí¼ÓXML±ê¼Ç¡£ÓÃÕâ¸öÀ´Ìæ´úÄÑÓÚÀí½âµÄFOR XML EXPLICIT Óï¾ä¡£Èç¹ûÄãÔÚÓ¦ÓóÌÐòÖм´½«·´ÐòÁл¯Êä³öµÄXML£¬Äã¾Í»á¾õµÃÕâ¸öÐÅÏ¢¶ÔÄãÓÐÓá£
ÔÚFor XML´Ó¾äÖУ¬Äúͨ³£Ê¹ÓÃÏÂÁз½Ê½Ö®Ò»£º
RAW
AUT ......