Hi Scott, I am trying to parse a xml file where a tag contains base64 data (a test tif file). Can I use the approach in GetInnerDoc to decode the base64 data and write to the ifs file? Seems like I get "rubbish" in the ifs file when i use base64_decode. And I get base64 data when i skip the base64_decode. Do I have to use iconv to convert the data before I use base64_decode? Begsr ParseContent; http_xmlReturnPtr(*ON); filename = http_tempfile() + '.xml'; // Note: http_XmlStripCRLF(*ON/*OFF) controls whether or not // the XML parser removes CR and LF characters from the // Xml data that's passed to your 'Incoming' procedure. http_XmlStripCRLF(*ON); rc = http_parse_xml_stmf(%trim(Ma_xml) : HTTP_XML_CALC : *null : %paddr(GetInnerDoc) : %addr(filename)); if (rc <> 1); http_crash(); endif; ma_content = filename; Endsr; I use the GetInnerDoc subroutine. P GetInnerDoc B export D GetInnerDoc PI D filename 50a varying D depth 10I 0 value D name 1024A varying const D path 24576A varying const D value likeds(Element_Val_t) D Attrs * dim(32767) D const options(*varsize) D fd s 10i 0 D fd3 s 10I 0 D len s 10I 0 D buf s 32768A D outbuf S 24576A D outlen S 10I 0 /free if path = '/soapenv:Envelope/soapenv:Body/' + 'rs:getContentResponse'; if (name = 'content:content'); fd = open( filename : O_CREAT + O_TRUNC + O_WRONLY + O_CCSID + O_TEXTDATA + O_TEXT_CREAT : S_IRUSR + S_IWUSR : 819 : 0 ); // FIXME: Add error handling. outlen = base64_decode( value.buf : value.len : %addr(outbuf) : %size(outbuf) ); callp write(fd: %addr(outbuf): outlen); callp close(fd); endif; endif; /end-free P E The entire program and the xml file is enclosed in the zip file. Best regards, Magne
<<winmail.dat>>
----------------------------------------------------------------------- This is the FTPAPI mailing list. To unsubscribe, please go to: http://www.scottklement.com/mailman/listinfo/ftpapi -----------------------------------------------------------------------