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。

  • 相关阅读:
    Java实现 LeetCode 242 有效的字母异位词
    Java实现 LeetCode 212 单词搜索 II
    Java实现 LeetCode 212 单词搜索 II
    Java实现 LeetCode 212 单词搜索 II
    Java实现 LeetCode 212 单词搜索 II
    Java实现 LeetCode 344 反转字符串
    Java实现 洛谷 P1208 [USACO1.3]混合牛奶 Mixing Milk
    Java实现 洛谷 P1208 [USACO1.3]混合牛奶 Mixing Milk
    Java实现 洛谷 P1208 [USACO1.3]混合牛奶 Mixing Milk
    Java实现 洛谷 P1208 [USACO1.3]混合牛奶 Mixing Milk
  • 原文地址:https://www.cnblogs.com/Scohura/p/3636686.html
Copyright © 2011-2022 走看看