基本的Xml文件读取工具类(通用)

写一个样例一样的东西吧,是关于Xml文件读取的。

Xml文件内容:Name,CardImage,BackGround,Road,InitScore,Holder,Rounds,Path。

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

-<Level>

<Name>第一关:敌人来袭</Name>

<CardImage>card0.png</CardImage>

<Background>bg1.png</Background>

<Road>road1.png</Road>

<InitScore>10</InitScore>


-<Holder>

<Point Y="1" X="2"/>

<Point Y="1" X="3"/>

<Point Y="1" X="4"/>

<Point Y="1" X="5"/>

<Point Y="1" X="6"/>

<Point Y="1" X="7"/>

<Point Y="1" X="8"/>

<Point Y="1" X="9"/>

<Point Y="1" X="10"/>

<Point Y="2" X="0"/>

<Point Y="2" X="5"/>

<Point Y="2" X="6"/>

<Point Y="2" X="11"/>

<Point Y="3" X="0"/>

<Point Y="3" X="2"/>

<Point Y="3" X="3"/>

<Point Y="3" X="8"/>

<Point Y="3" X="9"/>

<Point Y="3" X="11"/>

<Point Y="4" X="0"/>

<Point Y="4" X="2"/>

<Point Y="4" X="3"/>

<Point Y="4" X="4"/>

<Point Y="4" X="5"/>

<Point Y="4" X="6"/>

<Point Y="4" X="7"/>

<Point Y="4" X="8"/>

<Point Y="4" X="9"/>

<Point Y="4" X="11"/>

<Point Y="5" X="0"/>

<Point Y="5" X="2"/>

<Point Y="5" X="8"/>

<Point Y="5" X="9"/>

<Point Y="5" X="11"/>

<Point Y="6" X="0"/>

<Point Y="6" X="1"/>

<Point Y="6" X="2"/>

<Point Y="6" X="9"/>

<Point Y="6" X="10"/>

<Point Y="6" X="11"/>

</Holder>


-<Path>

<Point Y="5" X="1"/>

<Point Y="2" X="1"/>

<Point Y="2" X="4"/>

<Point Y="3" X="4"/>

<Point Y="3" X="7"/>

<Point Y="2" X="7"/>

<Point Y="2" X="10"/>

<Point Y="5" X="10"/>

</Path>


-<Rounds>

<Round Count="5" Monster="0"/>

<Round Count="8" Monster="1"/>

<Round Count="8" Monster="2"/>

<Round Count="10" Monster="3"/>

<Round Count="10" Monster="4"/>

<Round Count="1" Monster="5"/>

</Rounds>

</Level>

这是一个保卫萝卜的地图。

using UnityEngine;
using System.Collections;
using System.Xml;

/// <summary>
/// Xml工具类
/// </summary>
public class XmlTools
{

    /// <summary>
    /// 加载level数据
    /// </summary>
    /// <param name=" filePath "> xml路径 </param>
    /// <param name=" level "> level结构 </param>
    public static void LoadLevel( string filePath, ref Level level)  
    {
        XmlDocument doc = new XmlDocument ();
        doc.Load(filePath);    //加载xml文件
        level.Name = doc.SelectSingleNode( "Level/Name" ).InnerText;
        level.CardImage = doc.SelectSingleNode( "Level/CardImage" ).InnerText;
        level.Background = doc.SelectSingleNode( "Level/Background" ).InnerText;
        level.Road = doc.SelectSingleNode( "Level/Road" ).InnerText;
        level.InitScore = int .Parse(doc.SelectSingleNode( "Level/InitScore" ).InnerText);
        //遍历Holder下面所有point子节点。
        XmlNode Holder = doc.SelectSingleNode( "Level/Holder" );
        foreach ( XmlNode node in Holder.ChildNodes)
        {
            Point p = new Point ();
            p.X = int .Parse(node.Attributes[ "X" ].Value)+1;
            p.Y = int .Parse(node.Attributes[ "Y" ].Value)+1;
            level.Holder.Add(p);
        }

        //遍历Round下面所有子节点。
        XmlNode Rounds = doc.SelectSingleNode( "Level/Rounds" );
        foreach ( XmlNode node in Rounds.ChildNodes)
        {
            Round round = new Round ();
            round.Monster = int .Parse(node.Attributes[ "Monster" ].Value);
            round.Count = int .Parse(node.Attributes[ "Count" ].Value);
            level.Round.Add(round);
        }

        XmlNode Path = doc.SelectSingleNode( "Level/Path" );
        foreach ( XmlNode node in Path.ChildNodes)
        {

            Point p = new Point ();
            p.X = int .Parse(node.Attributes[ "X" ].Value) + 1;
            p.Y = int .Parse(node.Attributes[ "Y" ].Value) + 1;
            level.Path.Add(p);
        }


    }
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值