2016-04-18 23 views
0

この件に関する記事は既にいくつかありますが、回答を使用して必要なものを見つけることができませんでした。私は、次の記事を参照してきたDataSetへのSOAP応答の解析

REMOVED SOAPリクエスト

次のコードIです:Read Soap Message using C#

次は私の修正SOAP応答(ちょうどプライベート情報を保護するため)であります「このXMLを解析しようとするために使用しては:m

string file = ConfigurationManager.AppSettings["xmlSource"]; 
     XmlReader reader; 
     reader = XmlReader.Create(file); 
     XmlReaderSettings settings = new XmlReaderSettings(); 

     XmlDocument xd = new XmlDocument(); 

     var nsmgr = new XmlNamespaceManager(xd.NameTable); 
     //nsmgr.AddNamespace("soap", "http://schemas.microsoft.com/sharepoint/soap/"); 
     nsmgr.AddNamespace("soap", "http://schemas.xmlsoap.org/soap/envelope/"); 
     nsmgr.AddNamespace("xs", "StAc_StuOnTrans"); 
     nsmgr.AddNamespace("st", "http://tempuri.org/StAc_StuOnTrans.xsd"); 
     xd.Load(file); 

     XmlNodeList xnList = xd.SelectNodes("//StAc_StuOnTrans", nsmgr); 
     int nodes = xnList.Count; 


     //xd.Load(reader); //soap message 
     XmlNode xn = xd.DocumentElement; 
     XmlNode c = xn.FirstChild; 
     XmlNode result = xn.SelectSingleNode("Student_OnTranscripts"); 

コードがするまで細かいノード構造を拾っているように見えます最後の行に到達し、その時点で「結果」がnullとして解釈されます。私が間違った名前空間を持っているように聞こえてきた読書から、私がNameSpaceManagerに何を追加しようとしても、常にnullとして戻ってきます。

誰でもお手伝いできますか?他の人が標準の.NET以外のライブラリを使用することができますか?

+0

を。フレームワークはあなたのためにそれを行います。両側で同じデータ型を使用するだけです。 –

+0

Thaks @ matt-dot-net。より詳細な情報を提供できますか?したがって、SOAP応答の例を当面使用している場合、フレームワーク内のどのオブジェクト/メソッドを呼び出すべきですか? – kickinchicken

+1

OK ...これをしてからしばらくお待ちください。私は、プロジェクトへのサービス参照を追加しました。今すぐコードからWebサービスを呼び出すだけです。 – kickinchicken

答えて

0

だから何私がしたことは私のプロジェクトにサービス参照を追加しましたし、次のコードを追加:あなたはSOAPを解析する必要はありません

GlobalWeatherSoap request = new GlobalWeatherSoapClient("GlobalWeatherSoap"); 

     string test = request.GetCitiesByCountry("Canada"); 

     StringReader str = new StringReader(test); 
     DataSet ds = new DataSet(); 
     ds.ReadXml(str);