using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Collections;
using System.Xml;
namespace SelectXMLByHasTable
{
public partial class Frm_Main : Form
{
public Frm_Main()
{
InitializeComponent();
}
#region 在XML文件中查找电台地址及名称
///
/// 在XML文件中查找电台地址及名称
///
/// XML文件路径
///
static Hashtable SelectXML(string strPath)
{
Hashtable HTable = new Hashtable();
//实例化哈希表对象
XmlDocument doc = new XmlDocument();
//实例化XML文档对象
doc.Load(strPath);
//加载XML文档
XmlNodeList xnl = doc.SelectSingleNode("BCastInfo").ChildNodes;
//获取NewDataSet节点的所有子节点
string strVersion = "";
//定义一个字符串,用来记录电台地址
string strInfo = "";
//定义一个字符串,用来记录电台名称
foreach (XmlNode xn in xnl)//遍历所有子节点
{
XmlElement xe = (XmlElement)xn;
//将子节点类型转换为XmlElement类型
if (xe.Name == "DInfo")//判断节点名为DInfo
{
XmlNodeList xnlChild = xe.ChildNodes;
//继续获取xe子节点的所有子节点
foreach (XmlNode xnChild in xnlChild)//遍历
{
XmlElement xeChild = (XmlElement)xnChild;
//转换类型
if (xeChild.Name == "Address")
{
strVersion = xeChild.InnerText;
//记录电台地址
}
if (xeChild.Name == "Name")
{
strInfo = xeChild.InnerText;
//记录电台名称
}
}
HTable.Add(strVersion, strInfo);
//向哈希表中添加键值
}
}
return HTable;
}
#endregion
private void Frm_Main_Load(object sender, EventArgs e)
{
Hashtable myHashtable = SelectXML("BroadCastInfo.xml");
//使用自定义方法实例化哈希表对象
IDictionaryEnumerator IDEnumerator = myHashtable.GetEnumerator();
//循环访问哈希表
while (IDEnumerator.MoveNext())
{
cbox_Name.Items.Add(IDEnumerator.Value.ToString());
//显示电台名称
cbox_NetAddress.Items.Add(IDEnumerator.Key.ToString());
//显示电台网址
}
cbox_Name.SelectedIndex = cbox_NetAddress.SelectedIndex = 0;
//设置默认选项
}
}
}
/******************************************************************/
【C#-使用哈希表对XML进行查询】
http://www.mingribook.com
http://www.mrbccd.com
推荐阅读
- C#|C# 文件路径操作
- C# 接口实例
- C#|10、接口、抽象、密封、开放封闭原则
- c#|11、C#处理程序异常的技术
- C#|九、C#结构 类 属性
- C#|c# HashtableTo Json 字符串 HashtableToWxJson
- 分表分库(百亿级大数据存储)
- C#|微信小程序开发系列(六)——“处理请求时出错”怎么处理()
- c#做的一个简单的包含实时进度的进度条
- asp.net|c#文件写入与获取post请求数据