读取 XML 属性和文本 [英] Reading XML attributes and text

查看:33
本文介绍了读取 XML 属性和文本的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在开发 Windows Phone 7.5 应用程序,但我迷路了.

I'm developing a Windows Phone 7.5 app and I'm lost.

我必须阅读以下 xml:

I have to read the following xml:

<?xml version="1.0" encoding="utf-8" ?>
<cards>
  <card id ="0">
    <name lang="en">Mad</name>
    <description lang="en">This...</description>
  </card>
...
</cards>

我必须完成这段代码:

private void UpdateCardDescriptions(int[] numbers, string lang)
{
    for (int i = 0; i < numbers.Length; i++)
    {
        XmlReader reader = XmlReader.Create("Data/CardDescriptions.xml");

        reader.MoveToContent();

        while (reader.Read())
        {
            if ((reader.NodeType == XmlNodeType.Element) && 
                (reader.Name == "card") &&
                (reader.GetAttribute("id").Equals(numbers[i].ToString())))
            {
                string description = string.Empty;
                while (reader.Read())
                {

                }

                switch (i)
                {
                    case 0:
                        Card01Desc.Text = description;
                        break;
                    case 1:
                        Card02Desc.Text = description;
                        break;
                    case 2:
                        Card03Desc.Text = description;
                        break;
                }
            }

            if (reader.NodeType == XmlNodeType.EndElement && reader.Name == "cards")
            {
                break;
            }
        }

        reader.Close();
    }
}

我必须完成这段代码:

while (reader.Read())
{

}

如果我正在寻找语言的描述,请使用 lang,以获取带有 ID 的卡片.如何获取同种语言lang对应的描述.

If I'm looking for a description in a language, lang, for a card with an id. How can I get the corresponding description for the same language, lang.

对不起,我被屏蔽了.

推荐答案

您是否使用过 XElement,Windows Phone SDK 很容易并广泛支持它.

Have you used XElement, it's easy and widely supported by Windows Phone SDK.

private void UpdateCardDescriptions(int[] numbers, string lang)
{
    XElement xe = XElement.Load(yourXml);
    Control[] controls = new[] { Card01Desc, Card02Desc, Card03Desc };

    foreach(var number in numbers)
    {
        var card = xe.Desendants("card").Where(c => c.Attribute("id").Value == number)
                                        .First();

        ((YourControlType)controls[number]).Text = card.Desendants("description")
                                                    .Where(c => c.Attribute("lang").Value == lang)
                                                    .First()
                                                    .Value;
    }
}

这篇关于读取 XML 属性和文本的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆