2010-12-03 11 views
1

RSSフィードを読み取り、アイテムをマップに配置するアプリケーションを作成しています。 私は、この文字列から緯度と長い数字を読んでする必要があります。 http://www.digitalvision.se/feed.aspx?isAlert=true & LAT = 53.647351 &経度= -1.933506 .Thisはリンクタグに含まれていますXML文字列の特定のテキストを解析する

私はプログラミングnoobのビットですが、Linqを使ってXMLにC#/ Silverlightでこれを書いています。

このテキストを解析したり、解析した後に展開したり、これを行うためにクラスに送信したりできますか? ご協力いただきありがとうございます。

EDIT。私はこの正規表現をしようとするつもりです

これは私がこのコードのどこかで正規表現を統合する必要があるところです。私は、リンク要素から緯度と長いを取ると、私が使用できる2つの変数にそれを区切る必要がある(結果は一覧表を作成し、foreachループの一部である。)

var events = from ev in document.Descendants("item") 
        select new 
        { 
         Title = (ev.Element("title").Value), 
         Description = (ev.Element("description").Value), 
         Link = (ev.Element("link").Value), 
        }; 

質問はどこかなりわからないイムです正規表現を置くために(一度正しく正規表現を使う方法を考えたら:-))

+0

を試してみてください。シンプルな正規表現があなたを助けます。 –

+0

ありがとう、私はこれに正規表現を使用するつもりです。しかし、どのようにしてどうやって作業する必要があります:-)私の投稿を編集してもう少し詳しく知りたい –

答えて

1

あなたは、この文字列からLANおよび経度を抽出するためのLINQを使用する必要はありません。この

var url = "http://www.xxxxxxxxxxxxxx.co.uk/map.aspx?isTrafficAlert=true&lat=53.647351&lon=-1.93350"; 
var items = url.Split('?')[1] 
    .Split('&') 
    .Select(i => i.Split('=')) 
    .ToDictionary(o => o[0], o => o[1]); 
var lon = items["lon"]; 
var lat = items["lat"]; 
+0

ありがとう、私は今夜それらを試してみましょう! –

1

緯度と経度の値が必要なだけで、フィードは1つの大きなXML文字列であれば、正規表現。

var rssFeed = @"http://www.xxxxxxxxxxxxxx.co.uk/map.aspx?isTrafficAlert=true&lat=53.647351&lon=-1.933506 
       http://www.xxxxxxxxxxxxxx.co.uk/map.aspx?isTrafficAlert=true&lat=53.647352&lon=-1.933507 
       http://www.xxxxxxxxxxxxxx.co.uk/map.aspx?isTrafficAlert=true&lat=53.647353&lon=-1.933508 
       http://www.xxxxxxxxxxxxxx.co.uk/map.aspx?isTrafficAlert=true&lat=53.647354&lon=-1.933509"; 

var regex = new Regex(@"lat=(?<Lat>[+-]?\d*\.\d*)&lon=(?<Lon>[+-]?\d*\.\d*)"); 

var latLongPairs = new List<Tuple<decimal, decimal>>(); 

foreach (Match match in regex.Matches(rssFeed)) 
{ 
    var lat = Convert.ToDecimal(match.Groups["Lat"].Value); 
    var lon = Convert.ToDecimal(match.Groups["Lon"].Value); 
    latLongPairs.Add(new Tuple<decimal, decimal>(lat, lon)); 
} 
+0

こんにちはありがとう、タプルを使用しようとしていますが、参照を見つけることができません? –

+0

実際にはWP7はタプルを持っていないようです! –