当前位置:   article > 正文

C#-使用哈希表对XML进行查询_hashtable myhashtable = selectxml("broadcastinfo.x

hashtable myhashtable = selectxml("broadcastinfo.xml");

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文件中查找电台地址及名称
        /// <summary>
        /// 在XML文件中查找电台地址及名称
        /// </summary>
        /// <param name="strPath">XML文件路径</param>
        /// <returns>Hashtable对象,用来记录找到的电台地址及名称</returns>
        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;//设置默认选项
        }
    }
}
 

 

/******************************************************************/

<?xml version="1.0" encoding="utf-8"?>
<BCastInfo>
  <DInfo>
    <Address>http://www.mingribook.com</Address>
    <Name>明日科技广播电台</Name>
  </DInfo>
  <DInfo>
    <Address>http://www.mrbccd.com</Address>
    <Name>C#编程词典广播电台</Name>
  </DInfo>
</BCastInfo>

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/小舞很执着/article/detail/996171
推荐阅读
相关标签
  

闽ICP备14008679号