2012-05-01 14 views
0

POSTデータをASPX(c#)ページに読み込もうとしています。私は現在、文字列の中に投稿データを持っています。私は今、これが最良の方法であるかどうか疑問に思っています。ここでのコードを使用して(http://stackoverflow.com/questions/10386534/using-request-getbufferlessinputstream-correctly-for-post-data-c-sharpは)私は、このようhttp post/stringから変数と値を抽出するC#

<callback variable1="foo1" variable2="foo2" variable3="foo3" /> 

は、次の文字列でいます今は文字列で、私は空間に基づいて分割しています。

string[] pairs = theResponse.Split(' '); 
    Dictionary<string, string> results = new Dictionary<string, string>(); 
    foreach (string pair in pairs) 
    { 
     string[] paramvalue = pair.Split('='); 
     results.Add(paramvalue[0], paramvalue[1]); 
     Debug.WriteLine(paramvalue[0].ToString()); 
    } 

値にスペースがあると問題が発生します。たとえば、variable3="foo 3"はコードを修正します。

文字列内の受信httpポスト変数を解析する必要がありますか?あなたが直接XMLとして処理する場合があります

+0

RegExを使用して、文字列 – Dima

答えて

2

:もちろん

// just use 'theResponse' here instead 
var xml = "<callback variable1=\"foo1\" variable2=\"foo2\" variable3=\"foo3\" />"; 

// once inside an XElement you can get all the values 
var ele = XElement.Parse(xml); 

// an example of getting the attributes out 
var values = ele.Attributes().Select(att => new { Name = att.Name, Value = att.Value }); 

// or print them 
foreach (var attr in ele.Attributes()) 
{ 
    Console.WriteLine("{0} - {1}", attr.Name, attr.Value); 
} 

あなたは上記のラフな一例であり、あなたが好きにその最後の行を変更することができます。

+0

を解析することができます。私は、デバッグウィンドウでname - > valueを見ることができます。私は私の変数をどのように設定するのか混乱しています。 ( 'var values = ele ...'行を使用します)。変数var1 = ele.Attributes()。select()の値を取得するために指定することはできますか? –

+0

ようこそ。 try ele.Attribute( "variable1")。値 – yamen

+0

完璧 - 多くのありがとう! –

関連する問題