一个C#读取XML的问题

GooCarlos 2009-04-08 01:51:55
已经掌握了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可以读取这项物品的参数。

具体如何实现?
...全文
86 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
lude8880 2009-04-08
  • 打赏
  • 举报
回复
学习!
修改一下昵称 2009-04-08
  • 打赏
  • 举报
回复
学习!!
Zoezs 2009-04-08
  • 打赏
  • 举报
回复
学习。
sunshine_anycall 2009-04-08
  • 打赏
  • 举报
回复
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; }
}
}
}
sunshine_anycall 2009-04-08
  • 打赏
  • 举报
回复

给你个参考
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;
}
}
}

111,126

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Creator Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧