2013-04-30 72 views
0

好的第一關我充分意識到這個問題「Showing Multiple XML Data Entries With the Same Node Value」,但它並沒有回答我的問題顯示XML數據條目具有相同的節點值

確定,所以出發了,這是我的XML

<xml_api_reply version="1"> 
    <weather module_id="0" tab_id="0" mobile_row="0" mobile_zipped="1" row="0" section="0"> 
    <forecast_conditions> 
    <day_of_week data="Wed"/> 
    <low data="57"/> 
    <high data="68"/> 
    <icon data="/ig/images/weather/partly_cloudy.gif"/> 
    <condition data="Partly Cloudy"/> 
    </forecast_conditions> 
    <forecast_conditions> 
     <day_of_week data="Thu"/> 
     <low data="57"/> 
     <high data="68"/> 
     <icon data="/ig/images/weather/chance_of_rain.gif"/> 
     <condition data="Chance of Rain"/> 
    </forecast_conditions> 
    <forecast_conditions> 
     <day_of_week data="Fri"/> 
     <low data="59"/> 
     <high data="68"/> 
     <icon data="/ig/images/weather/cloudy.gif"/> 
     <condition data="Cloudy"/> 
    </forecast_conditions> 
    <forecast_conditions> 
     <day_of_week data="Sat"/> 
     <low data="59"/> 
     <high data="68"/> 
     <icon data="/ig/images/weather/cloudy.gif"/> 
     <condition data="Cloudy"/> 
    </forecast_conditions> 
    </weather> 
</xml_api_reply> 

,正如你可以看到有多個forecast_conditions和什麼IM想要做在自己的字符串,像這樣被顯示的每一天......

string day1; 
string day2; 
string day3; 
string day4; 

day1 = "Wed"; 
day2 = "Thu"; 
day3 = "Fri"; 
day4 = "Sat"; 

,但因爲所有的HEA丁節點是相同的(forecast_conditions)我是一個有點困惑就如何做到這一點

這是IM如何歌廳它到目前爲止

foreach (XmlNode node in xmlConditions.SelectNodes("/xml_api_reply/weather/forecast_conditions")) 
{ 
    Conditions condition = new Conditions(); 
    condition.City = xmlConditions.SelectSingleNode("/xml_api_reply/weather/forecast_information/city").Attributes["data"].InnerText; 
    condition.Condition = node.SelectSingleNode("condition").Attributes["data"].InnerText; 
    condition.High = node.SelectSingleNode("high").Attributes["data"].InnerText; 
    condition.Low = node.SelectSingleNode("low").Attributes["data"].InnerText; 
    condition.DayOfWeek = node.SelectSingleNode("day_of_week").Attributes["data"].InnerText; 
    conditions.Add(condition); 
} 

public class Conditions 
{ 
    public string DayOfWeek 
    { 
     get { return dayOfWeek; } 
     set { dayOfWeek = value; } 
    } 

回答

0

如果您的XML存儲在XDocument對象中,則可以使用LINQ執行此操作。我還沒有完全測試過,但嘗試這樣的:

XDocument doc = XDocument.Load(stream_of_your_xml); 
var allConditions = from forecast_conditions in doc.Descendants("forecast_conditions") 
      select new Conditions() 
      { 
       DayOfWeek = forecast_conditions.Element("day_of_week").Attribute("data").Value, 
       Low = forecast_conditions.Element("low").Attribute("data").Value 
       //Do the same for your other values 
      }; 
List<Conditions> theConditions = (List<Conditions>) allConditions;