2010-11-24 6 views
2

C#では、XMLファイルを返すWebサービスを呼び出そうとしています。StreamreaderのデータをXmlDocumentに変換するには?

WebサービスにHttpWebRequestを作成し、その出力をStreamReaderに格納することができます。しかし、どのようにしてこのデータをXMLDocumentに変換できますか?

+0

これはSOAPベースのWebサービスですか?次に、HttpWebRequestを使用すべきではありません。 「サービス参照の追加」を使用して、作成されたプロキシクラスの「メソッド」を呼び出してください。XMLは関係ありません。 –

+0

そのRESTfulサービス – Troyes22

答えて

7

使用XmlDocument.Load() - 私はXmlReader.Createの自動エンコード検出にで現金にXmlReaderを受け入れるオーバーロードを使用しています:

XmlDocument document = new XmlDocument(); 
using(Stream stream = request.GetResponse().GetResponseStream()) {   
    using(XmlReader reader = XmlReader.Create(stream)) { 
     document.Load(stream); 
    } 
} 
+2

これは、応答ストリームのエンコーディングがXMLエンコーディングと同じであることを前提としています。必ずしもそうである必要はありません。 –

+1

良い点ハンス更新。 –

+3

XmlReaderを作成している間も、オリジナルの 'ストリーム'オブジェクトをdocument.Load()に渡しているだけです。 –

1

System.Xml.Linq.XDocument.Load(streamreader)を使用します。

0

あなたがにStringWriterで受信した出力またはちょうどstringand保存する必要がありますXmlDocument.Load(string)を使用してロードします。

+0

なぜそうですか? –

+0

彼はそれを保存したいので:)。実際には私は上記のJeffのソリューションに行くだろう。 – florin

関連する問題