WP7的XML读取问题

本文关键字:问题 读取 XML WP7 | 更新日期: 2023-09-27 18:02:29

我正在尝试创建一个Windows Phone 7应用程序,它显示来自特定URI的数据,但它不会工作。我是斯塔克,请帮帮我。这是我的XML:

<?xml version="1.0" encoding="utf-8" ?>
<weather module_id="0" tab_id="0" mobile_row="0" mobile_zipped="1" row="0" section="0">
    <forecast_conditions>
        <day_of_week data="lun."/>
        <low data="28"/>
        <high data="38"/>
        <icon data="/ig/images/weather/mostly_sunny.gif"/>
        <condition data="Partiellement ensoleillé"/>
    </forecast_conditions>
    <forecast_conditions>
        <day_of_week data="mar."/>
        <low data="27"/>
        <high data="39"/>
        <icon data="/ig/images/weather/sunny.gif"/>
        <condition data="Temps clair"/>
    </forecast_conditions>
    <forecast_conditions>
        <day_of_week data="mer."/>
        <low data="25"/>
        <high data="38"/>
        <icon data="/ig/images/weather/mostly_sunny.gif"/>
        <condition data="Ensoleillé dans l'ensemble"/>
    </forecast_conditions>
    <forecast_conditions>
        <day_of_week data="jeu."/>
        <low data="24"/>
        <high data="33"/>
        <icon data="/ig/images/weather/mostly_sunny.gif"/>
        <condition data="Ensoleillé dans l'ensemble"/>
    </forecast_conditions>
</weather>
这是我的c#代码:
namespace WEATHER2
{
    public partial class MainPage : PhoneApplicationPage
    {
        // Constructeur
        public MainPage()
        {
            InitializeComponent();
            XDocument doc = XDocument.Load("Gweather.xml");
            var x= from c in doc.Descendants("forecast_conditions")
            select new Weather_Element()
             {
                 Day = (string)c.Attribute("day_of_week").Value,
                 Low = (string)c.Attribute("low").Value,
                 High = (string)c.Attribute("high").Value,
                 Condition = (string)c.Attribute("condition").Value
              };
             listBox1.ItemsSource = x;
        }
        public class Weather_Element
        {
            string day;
            string low;
            string high;
            string condition;
            public string Day
            {
               get { return day; }
               set { day = value; }
            }
            public string Low
            {
               get { return low; }
               set { low = value; }
            }
            public string High
            {
               get { return high; }
               set { high = value; }
            }
            public string Condition
            {
               get { return condition; }
               set { condition = value; }
            }
        }
    }
}

WP7的XML读取问题

您试图从没有属性的元素中获取属性值。

var x = from c in doc.Descendants("forecast_conditions")
select new Weather_Element()
{
    Day = c.Element("day_of_week").Attribute("data").Value,
    Low = c.Element("low").Attribute("data").Value,
    High = c.Element("high").Attribute("data").Value,
    Condition = c.Element("condition").Attribute("data").Value
};

类型为forecast_conditions的元素c有一个元素day_of_week。那么这个元素有一个属性data

你的forecast_conditions没有任何属性,它们有子元素,然后有data属性。所以不用

        var x= from c in doc.Descendants("forecast_conditions")
        select new Weather_Element()
         {
             Day = (string)c.Attribute("day_of_week").Value,
             Low = (string)c.Attribute("low").Value,
             High = (string)c.Attribute("high").Value,
             Condition = (string)c.Attribute("condition").Value
          };
使用

        var x= from c in doc.Descendants("forecast_conditions")
        select new Weather_Element()
         {
             Day = (string)c.Element("day_of_week").Attribute("data"),
             Low = (string)c.Element("low").Attribute("data"),
             High = (string)c.Element("high").Attribute("data"),
             Condition = (string)c.Element("condition").Attribute("data")
          };