Creating an XML file

Post Reply
Natter
Posts: 524
Joined: Mon May 14, 2007 9:49 am

Creating an XML file

Post by Natter »

Hi, all !

I made a request to the site (httpxmlreques). As a result, the ResponseXML property is an XML object. Is it possible to save the object as XML file ?
User avatar
TimStone
Posts: 2536
Joined: Fri Oct 07, 2005 1:45 pm
Location: Trabuco Canyon, CA USA
Contact:

Re: Creating an XML file

Post by TimStone »

nFileHandle := FCreate( "MyDoc.xml", 0 )
// cXml would be your response from the server
FWrite( nFileHandle, cXml )
FClose( nFileHandle )

This should work ....
Tim Stone
http://www.MasterLinkSoftware.com
timstone@masterlinksoftware.com
Using: FWH 19.06 with Harbour 3.2.0 / Microsoft Visual Studio Community 2019
Natter
Posts: 524
Joined: Mon May 14, 2007 9:49 am

Re: Creating an XML file

Post by Natter »

Tim, thank you for your help. But if you save the object in ResponseXML XML file using fwrite, the length of the file equal to 0. Perhaps you first need to convert the ResponseXML object to a string, but I don't know how to do it.
darioflores
Posts: 16
Joined: Tue Oct 06, 2015 7:06 am

Re: Creating an XML file

Post by darioflores »

Natter wrote:Hi, all !

I made a request to the site (httpxmlreques). As a result, the ResponseXML property is an XML object. Is it possible to save the object as XML file ?
Try ResponseXML:xml
EduardoSP6
Posts: 3
Joined: Thu Sep 01, 2016 1:18 pm
Location: Rio de Janeiro - Brazil

Re: Creating an XML file

Post by EduardoSP6 »

Try this:

MEMOWRIT('c:\response.xml' , cXML , .F.)
User avatar
gkuhnert
Posts: 274
Joined: Fri Apr 04, 2008 1:25 pm
Location: Aachen - Germany // Kerkrade - Netherlands
Contact:

Re: Creating an XML file

Post by gkuhnert »

If you have an (x)harbour object from class TXml, say oXml, you can make a string by calling:
oXml:ToString( nStyle )
works too, if you don't pass a parameter for style.

The source of the class is in \source\rtl\txml.prg, if you've downloaded (x)harbour source code.
There even is a Method Write, which takes two parameters: fHandle and nStyle
So if you've created a new file and have the handle in fHandle, you could simply call:
oXml:Write( fHandle )
Best Regards,

Gilbert Kuhnert
CTO Software GmbH
http://www.ctosoftware.de
Natter
Posts: 524
Joined: Mon May 14, 2007 9:49 am

Re: Creating an XML file

Post by Natter »

Thank you all. Understood. Object responceXML empty (the site does not support header to text/xml) so the persistent xml file was also empty.
User avatar
TimStone
Posts: 2536
Joined: Fri Oct 07, 2005 1:45 pm
Location: Trabuco Canyon, CA USA
Contact:

Re: Creating an XML file

Post by TimStone »

First, I create an xml document: LOCAL oXmlDoc := TXmlDocument():new( )
I also use from windows: iDLL := LoadLibrary( "wininet.dll" )

Then I create the XML I am going to send them. It's a string called cXML ... contains the format they want.
Next, I submit it:
IF .NOT. oHttp:open()
MsgAlert( "Connection error:", oHttp:lastErrorMessage( ) )
RETURN
ENDIF
oHttp:Post( cXml)
cRet := oHttp:readAll( )
oHttp:close()

The value cRet can then be parsed, or written to a file.

At least, it works fine for me this way but may vary depending on how the resource sends you the files.
Tim Stone
http://www.MasterLinkSoftware.com
timstone@masterlinksoftware.com
Using: FWH 19.06 with Harbour 3.2.0 / Microsoft Visual Studio Community 2019
User avatar
driessen
Posts: 1239
Joined: Mon Oct 10, 2005 11:26 am
Location: Genk, Belgium

Re: Creating an XML file

Post by driessen »

Tim,

I make XML-files the way you suggested (usingFWRITE, etc;).
It works perfectly.
Regards,

Michel D.
Genk (Belgium)
_____________________________________________________________________________________________
I use : FiveWin for (x)Harbour v. 21.01 - Harbour 3.2.0 (October 2020) - xHarbour Builder (January 2020) - Bcc7
User avatar
TimStone
Posts: 2536
Joined: Fri Oct 07, 2005 1:45 pm
Location: Trabuco Canyon, CA USA
Contact:

Re: Creating an XML file

Post by TimStone »

Michel,

I've been using XML for a couple of years, and now JSON. I usually will be able to deal with most operations in memory by creating an XML formatted output, then parsing the reply. When I need the actual file to be saved, FWRITE has worked fine and the resulting files can be read easily in a browser.

Tim
Tim Stone
http://www.MasterLinkSoftware.com
timstone@masterlinksoftware.com
Using: FWH 19.06 with Harbour 3.2.0 / Microsoft Visual Studio Community 2019
Post Reply