2017-07-04 22 views
0

Ich möchte XML-Antwort in variablen Zeichenfolge analysieren. keine XML-Datei erstellen.Wie kann ich eine XML-Antwort analysieren?

Ich benutze 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 Antwort ist in TransText.

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

Was Sie bisher versucht haben? – SirDarius

+0

Um XML zu analysieren, benötigen Sie [XML-Parser] (https://stackoverflow.com/a/9387612/226648). –

+0

@SirDarius Ich habe versucht, tinyxml2 zu verwenden. –

Antwort

0

Ich habe gefunden, wie ohne XML-Dokument zu analysieren. mit tinyxml2.

Danke an alle: D

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

    tinyxml2::XMLElement *elem = doc.FirstChildElement("string"); 
    transText = utility::conversions::to_string_t(elem->GetText()); 
Verwandte Themen