前言
- xml也是一种文本格式
- 我们一般将信息存储在节点属性和节点内容中, 通过遍历获得
步骤
- 获取根节点
- 然后获取根节点的所有子节点
- 遍历节点,将属性值或节点内容赋给实体类的属性
- C#中内置有对xml的解析库, using System. Xml
- 注意xml的属性必须带双引号
<SkillInfo>
<SkillList>
<Skill
SkillID="20002" /* 技能ID */
SkillEngName="Smash" /* 技能英文名称(注:并非所有名称均为规范拼写) */
TriggerType="1" /* 字面意为技能触发类型,0主要为各种精通类技能,1为主动,2为被动,3主要为敌人主动技能,4主要为炼金术技能,5目前为尚未开放的魔法枪 */
ImageFile="data/gfx/image/gui_icon_skill_000.dds" /* 技能图标所在文件 */
AvailableRace="7" /* 可使用该技能的种族,1为人类,2为精灵,4为巨人,3为人类+精灵,5为人类+巨人(知道UNIX文件属性算法的看到这里可能会会心一笑),目前暂无值为6(精灵+巨人)的技能 */
>
<Name>重击</Name>
</Skill>
<Skill
SkillID="20003"
SkillEngName="Hide"
TriggerType="2"
ImageFile="data/gfx/image/gui_icon_skill_001.dds"
AvailableRace="1"
>
<Name>隐身</Name>
</Skill>
</SkillList>
</SkillInfo>
private void ReadXMLByPath(string path)
{
//<1>实例化一个XML文档操作对象.
XmlDocument doc = new XmlDocument();
//<2>使用XML对象加载XML.
doc.Load(path);
//通过string方式加载
doc.LoadXml(xmlstr); //xml格式的字符串
//<3>获取根节点.
XmlNode root = doc.SelectSingleNode("Web");
//或者通过以下方式获得
XmlNode root = doc.FirstChild;
//<4>获取根节点下所有子节点.
XmlNodeList nodeList = root.ChildNodes;
//<5>遍历输出.
foreach(XmlNode node in nodeList)
{
//取属性.
int id = int.Parse(node.Attributes["id"].Value);
//取文本.
string name = node.ChildNodes[0].InnerText;
string url = node.ChildNodes[1].InnerText;
Debug.Log(id + "--" + name + "--" + url);
}
}