LINQ problem z wczytaniem XML

0

Witam
Mam różne parametry XML do wczytanie, które się nie powtarzają i w tym jest problem Linq nie może odnaleźć parametru w kodzie i wywala bład

Przykład kodu z netu
na który się opieram w mojej aplikacji


using System;
using System.Collections.Generic;
using System.Linq;
using System.Net;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Animation;
using System.Windows.Shapes;
using Microsoft.Phone.Controls;
using System.Xml.Linq;
using System.IO;
using System.Diagnostics;
 
namespace WindowsPhoneApplication1
{
 public class StockQuote
 {
   public string Symbol { get; set; }
   public string Home { get; set; }
   public decimal Price { get; set; }
   public DateTime QuoteTime { get; set; }
 }
 
 public partial class MainPage : PhoneApplicationPage
 {
   // Constructor
   public MainPage()
   {
     InitializeComponent();
 
     // pretend this came from a web service
     string xmlData =
     @"<ServiceReply>
       <StockQuote symbol='IBM' price='32.50' quotetime='01/01/2010 12:21:00'/>
       <StockQuote symbol='MSFT' price='21.20' quotetime='01/01/2010 12:20:30' home='usa' />
      </ServiceReply>
     ";
 
   XDocument dataDoc = XDocument.Load(new StringReader(xmlData));
 
   var quotes = from quote in dataDoc.Descendants("StockQuote")
     let stamp = DateTime.Parse(quote.Attribute("quotetime").Value)
     orderby stamp ascending
     select new StockQuote
     {
       Symbol = quote.Attribute("symbol").Value,
       Price = decimal.Parse(quote.Attribute("price").Value),
       Home =  quote.Attribute("symbol").Value
     };
 
   foreach (StockQuote stockQuote in quotes)
   {
     TextBox.Text = Convert.ToString(stockQuote.Symbol + " : " + stockQuote.Price+ " : " + stockQuote.Home);
   }
 }
 }
}
  

ja zasysam xml z netu ale przykład podany jest bardzo podobny

Problem:
przerywa kompilację z powodu braku parametru Home w pierwszej linii kodu XML

<StockQuote symbol='IBM' price='32.50' quotetime='01/01/2010 12:21:00'/>
 

ale muszę go pozyskać ponieważ występuje w drugiej linii kodu i jest mi on niezmiernie potrzebny, danych XML nie mogę zmienić

<StockQuote symbol='MSFT' price='21.20' quotetime='01/01/2010 12:20:30' home="usa" />
 

co mogę zrobić aby LINQ pomijał brakujący argument

0
http://msdn.microsoft.com/en-us/library/system.xml.linq.xelement.attribute.aspx napisał(a)

XElement.Attribute Method
...
Return Value
Type: System.Xml.Linq.XAttribute
An XAttribute that has the specified XName; null if there is no attribute with the specified name.

0

Rev dzieki pomoglo
Azarien dzieki za MSDN

1 użytkowników online, w tym zalogowanych: 0, gości: 1