zoukankan      html  css  js  c++  java
  • WP8解析XML格式文件

    DOTA2 WebAPI请求返回的格式有两种,一种是XML,一种是JSON,默认是返回JSON格式,如果要返回XML格式的话,需要在加上format=xml。

    这里举一个简单的解析XML格式的例子(更多XML操作):

    <response>
    <players>
    <player>
    <steamid>76561198092319753</steamid>
    <communityvisibilitystate>1</communityvisibilitystate>
    <profilestate>1</profilestate>
    <personaname>偶买噶、Scohura</personaname>
    <lastlogoff>1396240726</lastlogoff>
    <profileurl>
    http://steamcommunity.com/profiles/76561198092319753/
    </profileurl>
    <avatar>
    http://media.steampowered.com/steamcommunity/public/images/avatars/f9/f90a468b223389164861722c599318216b388f18.jpg
    </avatar>
    <avatarmedium>
    http://media.steampowered.com/steamcommunity/public/images/avatars/f9/f90a468b223389164861722c599318216b388f18_medium.jpg
    </avatarmedium>
    <avatarfull>
    http://media.steampowered.com/steamcommunity/public/images/avatars/f9/f90a468b223389164861722c599318216b388f18_full.jpg
    </avatarfull>
    <personastate>0</personastate>
    </player>
    </players>
    </response>

    解析代码如下,输入Stream流转为String就是上面的文本

            private void prase(Stream xml)
            {
                userdata = XElement.Load(xml).Element("players").Element("player");
                //昵称赋值、溢出部分使用省略号代替
                username.Text = userdata.Element("personaname").Value;
                username.TextTrimming = TextTrimming.WordEllipsis;
                username.FontSize = (this.Height - 80)/3;
                //状态赋值
                switch (userdata.Element("personastate").Value)
                {
                    case "0":
                        if (userdata.Element("communityvisibilitystate").Value.Equals("1"))
                        {
                            statusText = "该用户已将资料设为隐私";
                        }
                        else
                        {
                            statusText = "离线";
                        }
                        break;
                    case "1":
                        statusText = "在线";
                        break;
                    case "2":
                        statusText = "忙碌";
                        break;
                    case "3":
                        statusText = "离开";
                        break;
                    case "4":
                        statusText = "打盹";
                        break;
                    case "5":
                        statusText = "想交易";
                        break;
                    case "6":
                        statusText = "想游戏";
                        break;
                    default :break;
                }
                status.Text = statusText;
                status.FontSize = (this.Height - 80) / 3;
                //状态辅助赋值
                if (!userdata.Element("personastate").Value.Equals("0"))
                {
                    try
                    {
                        extraText = userdata.Element("gameextrainfo").Value + "  游戏中";
                        username.Foreground = new SolidColorBrush(Colors.Green);
                        status.Foreground = new SolidColorBrush(Colors.Green);
                        extra.Foreground = new SolidColorBrush(Colors.Green);
                    }
                    catch
                    {
                        username.Foreground = new SolidColorBrush(Colors.Blue);
                        status.Foreground = new SolidColorBrush(Colors.Blue);
                        extra.Foreground = new SolidColorBrush(Colors.Blue);
                    }
                }
                else
                {
                    extraText = "上次在线时间:";
                    username.Foreground = new SolidColorBrush(Colors.Gray);
                    status.Foreground = new SolidColorBrush(Colors.Gray);
                    extra.Foreground = new SolidColorBrush(Colors.Gray);
                }
                extra.Text = extraText;
                extra.FontSize = (this.Height - 80) / 3;
                //头像赋值
                BitmapImage bitImg = new BitmapImage(new Uri(userdata.Element("avatarfull").Value));
                head.Source = bitImg;
            }  

    说明:

    以XElement.Load(Stream xml)将Stream转化成XElement形式,而后其子标签,则使用XElement.Element(“Name”)获得,所对应的值为XElement.Value。

  • 相关阅读:
    Python3---filter,map,reduce
    老男孩-day2作业-计算器
    Python 简易购物系统--老男孩作业
    老男孩-day1作业二
    老男孩-day1作业一
    Axure8.0图片旋转注意
    CentOS6.5部署KVM及实现在线迁移
    CentOS 6.5 安装部署iSCSi共享存储
    CentOS 6.5 安装部署KVM
    CentOS6.5部署L2TP over IPSec
  • 原文地址:https://www.cnblogs.com/Scohura/p/3636686.html
Copyright © 2011-2022 走看看