2017-07-04 28 views
0

可変文字列のxml応答を解析したいと思います。 xmlファイルを作成しません。xmlレスポンスを解析するにはどうすればよいですか?

私はC++ RestSDKを使用しています。

pplx::task<void> Azure::GetTranslateText(utility::string_t ocrText, utility::string_t &transText) 
{ 
    auto client = http_client{ U("https://api.microsofttranslator.com/V2/Http.svc") }; 
    uri_builder query; 
    query.set_path(U("/Translate")); 
    query.append_query(U("appid"), appid); 
    query.append_query(U("text"), ocrText); 
    query.append_query(U("from"), U("en")); 
    query.append_query(U("to"), U("ko")); 

    auto path_query_fragment = query.to_string(); 

    return client.request(methods::GET, path_query_fragment).then([&](http_response response) 
    { 
     auto bodyStream = response.body(); 
     concurrency::streams::stringstreambuf sbuffer; 
     auto& target = sbuffer.collection(); 

     bodyStream.read_to_end(sbuffer).get(); 

     transText = utility::conversions::to_string_t(target); 
    }); 
} 

xml応答はトランステキストにあります。

<string xmlns="http://schemas.microsoft.com/2003/10/Serialization/"/>translated text</string> 
+0

? – SirDarius

+0

XMLを解析するには、[XML parser](https://stackoverflow.com/a/9387612/226648)が必要です。 –

+0

@SirDarius tinyxml2を使ってみました。 –

答えて

0

xmlドキュメントなしで解析する方法が見つかりました。 tinyxml2を使用しています。

みんなありがとう:Dあなたがこれまでに試してみました何

tinyxml2::XMLDocument doc; 
    doc.Parse(target.c_str()); 

    tinyxml2::XMLElement *elem = doc.FirstChildElement("string"); 
    transText = utility::conversions::to_string_t(elem->GetText()); 
関連する問題