어쨌든 (gsoap을 사용하여) 직렬화 된 XML 메시지를 인쇄 할 수 있습니다. 예를 들어gSOAP 직렬화 된 XML을 문자열로
:
soap_serialize_ns1__Response(soap, &ns2__UpdatedResponse);
나는 직렬화 (XML)이 어떻게 생겼는지 볼 수 있도록하고 싶습니다.
누구나 알고 계십니까?
어쨌든 (gsoap을 사용하여) 직렬화 된 XML 메시지를 인쇄 할 수 있습니다. 예를 들어gSOAP 직렬화 된 XML을 문자열로
:
soap_serialize_ns1__Response(soap, &ns2__UpdatedResponse);
나는 직렬화 (XML)이 어떻게 생겼는지 볼 수 있도록하고 싶습니다.
누구나 알고 계십니까?
어쨌든 serialize 된 xml 메시지 (gsoap 사용)를 인쇄 할 수 있습니다.
나는 serialize 된 (xml)이 어떻게 보이는지보고 싶습니다.
XML의 문자열에 직렬화 된 개체를 "인쇄"하려면 C 또는 C++로 코딩하는지에 따라 두 가지 옵션이 있습니다.
C 코딩
는 다음을 수행하십시오struct soap *soap = soap_new();
...
const char *str = NULL;
soap->os = &str; // assign a string to write output to
soap_write_ns1__Response(soap, &response);
soap->os = NULL; // no longer writing to the string
printf("The XML is:%s\n", str);
...
soap_end(soap); // warning: this deletes str with XML too!
str = NULL; // so make it NULL as good practice
soap_free(soap);
C 코딩 ++ 다음을 수행하십시오
soap *soap = soap_new();
...
std::stringstream ss;
soap->os = &ss; // assign a stringstream to write output to
soap_write_ns1__Response(soap, &response);
soap->os = NULL; // no longer writing to the stream
std::cout << "The XML is:\n" << ss.str();
...
soap_destroy(soap);
soap_end(soap);
soap_free(soap);
세부 사항에 대한 자신의 웹 사이트에 gSOAP XML databindgs를 참조하십시오. 나를 위해
는 아래와 같이 일한 :
int MyService::ConfirmPayment(_ns1__PaymentConfirmationRequest *ns1__PaymentConfirmationRequest, std::string &ns1__PaymentConfirmationResult) {
struct soap *soap = soap_new();
std::stringstream ss;
soap->os = &ss;
soap_write__ns1__C2BPaymentConfirmationRequest(soap, ns1__C2BPaymentConfirmationRequest);
soap->os = NULL;
std::cout << "The XML is:\n" << ss.str();
soap_destroy(soap);
soap_end(soap);
soap_free(soap);
ns1__PaymentConfirmationResult = "Transaction Queued!"
return SOAP_OK;
}