当前位置:编程学习 > C#/ASP.NET >>

一个C#读取XML的问题

已经掌握了C#读取XML的方法,但是还是很乱。

<?xml version="1.0" encoding="utf-8" ?>

<PFList Name ="Wuqi">
  <PFClass Name="剑类">
    <Peifang Name="1A 长剑">
      <LV>1A</LV>
      <NM>长剑</NM>
      <JG>220</JG>
      <NLZ>
        攻击+12~+24耐久250~300
      </NLZ>
      <SC1>铜条</SC1>
      <SC1N>4</SC1N>
      <SC2>印度轻木</SC2>
      <SC2N>20</SC2N>
      <SC3></SC3>
      <SC3N></SC3N>
      <SC4></SC4>
      <SC4N></SC4N>
      <SC5></SC5>
      <SC5N></SC5N>
      <SC6></SC6>
      <SC6N></SC6N>
      <PIC>Jian_1A</PIC>
    </Peifang>
    <Peifang Name="1B 阔剑">
      <LV>1B</LV>
      <NM>长剑</NM>
      <JG>280</JG>
      <NLZ>
        攻击+18~+36耐久250~300
      </NLZ>
      <SC1>铜条</SC1>
      <SC1N>4</SC1N>
      <SC2>铁条</SC2>
      <SC2N>3</SC2N>
      <SC3>印度轻木</SC3>
      <SC3N>20</SC3N>
      <SC4></SC4>
      <SC4N></SC4N>
      <SC5></SC5>
      <SC5N></SC5N>
      <SC6></SC6>
      <SC6N></SC6N>
      <PIC>Jian_1B</PIC>
    </Peifang>
    <Peifang Name="2A 突刺剑">
      <LV>2A</LV>
      <NM>突刺剑</NM>
      <JG>350</JG>
      <NLZ>
        攻击+24~+48耐久250~300
      </NLZ>
      <SC1>铜条</SC1>
      <SC1N>5</SC1N>
      <SC2>铁条</SC2>
      <SC2N>4</SC2N>
      <SC3>印度轻木</SC3>
      <SC3N>20</SC3N>
      <SC4></SC4>
      <SC4N></SC4N>
      <SC5></SC5>
      <SC5N></SC5N>
      <SC6></SC6>
      <SC6N></SC6N>
      <PIC>Jian_2A</PIC>
    </Peifang>
  </PFClass>
</PFList>


有这样一个XML文件。其中PFClass是分类,Peifang就是每样物品的配方。

比如我有两个comboBox,第一个comboBox显示的是所有的PFClash名称。然后选择完毕,第二个comboBox就会显示出所有该分类下的物品。

同时下面textBox可以读取这项物品的参数。

具体如何实现?
--------------------编程问答--------------------
给你个参考
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Xml;

namespace Framework
{
    public class ConfigHelper
    {
        private XmlDocument _xmlDoc = new XmlDocument();

        private string _xmlPath = string.Empty;
        /// <summary>
        /// 
        /// </summary>
        public string XmlPath
        {
            get { return _xmlPath; }
            set { _xmlPath = value; }
        }

        /// <summary>
        /// 
        /// </summary>
        public ConfigHelper()
        {
            
        }

        public ConfigHelper(string path)
        {
            _xmlDoc.Load(path);
        }

        /// <summary>
        /// 
        /// </summary>
        /// <param name="condition"></param>
        /// <returns></returns>
        public ConfigInfo GetConfigInfo(string condition)
        {
            ConfigInfo configInfo = new ConfigInfo();

            XmlElement root = _xmlDoc.DocumentElement;
            XmlNode node = root.SelectSingleNode(condition);

            XmlNode objectNode = node.ChildNodes[0];

            configInfo.AssemblyName = objectNode.Attributes["assembly"].Value;
            configInfo.ObjectName = objectNode.Attributes["name"].Value;
            configInfo.TypeName = objectNode.Attributes["typeName"].Value;

            XmlNode propertyNode = objectNode.ChildNodes[0];

            configInfo.ObjectPropertyInfo = new ConfigInfo.PropertyInfo();
            configInfo.ObjectPropertyInfo.AssemblyName = propertyNode.Attributes["assembly"].Value;
            configInfo.ObjectPropertyInfo.PropertyName = propertyNode.Attributes["name"].Value;
            configInfo.ObjectPropertyInfo.TypeName = propertyNode.Attributes["typeName"].Value;

            return configInfo;
        }
    }
}
--------------------编程问答--------------------
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace Framework
{
    public class ConfigInfo
    {
        public string ObjectName
        { get; set; }

        public string AssemblyName
        { get; set; }

        public string TypeName
        { get; set; }

        public PropertyInfo ObjectPropertyInfo
        { get; set; }

        public class PropertyInfo
        {
            public string PropertyName
            { get; set; }

            public string AssemblyName
            { get; set; }

            public string TypeName
            { get; set; }
        }
    }
}
--------------------编程问答-------------------- 学习。 --------------------编程问答-------------------- 学习!! --------------------编程问答-------------------- 学习! --------------------编程问答--------------------
补充:.NET技术 ,  C#
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,