Copy link to clipboard
Copied
I'm attempting to write a string to an XML file using CFFile.
The XML file must have apostrophes expressed as "'" once complete.
I'm using <cffile action="write" file="#VDJ8databasepath#databaseNew.xml" output="#XmlString#" addnewline="no" charset="utf-8"> to write the string to a file.
I can change the string to represent apostrophes as " ' " or "'" but when I write it to file, apostrophes are written as either " ' " or "'". As you can see, when the string contains apostrophes represented as "'" CFFile encodes the "&" character as "&" but when the string contains apostrophes represented as " ' " it does not encode them at all and simply leaves them as " ' ".
Any ideas how to get my apostrophes written by CFFile as "'"?
Copy link to clipboard
Copied
Might using writebinary instead help? I can’t test it at the moment.
/charlie
Copy link to clipboard
Copied
Thanks for responding Charlie. Can't quite see how writing as binary will make my file have the correct format. I did try it as it's new for me, but as expected, I couldn't get anything other than binary in the file. Might be taking you out of context here as I'm a bit rusty with the cffile, but just cant see how to make it work with writebinary.
Thanks anyway.
Copy link to clipboard
Copied
It was a shot in the dark. Sorry.
/charlie
Copy link to clipboard
Copied
Hey Charlie,
before I start asking questions on the forum, I have to spend hours trying to find my own solution and only really want to use the forum as a last resort, at which point, shots in the dark are greatly appreciated, so please don't apologise too much and thanks for taking the time.
![]()
Copy link to clipboard
Copied
Try this:
<cfset content = "y's x's z & b's a's c">
<cfsavecontent variable="testString"><?xml version="1.0" encoding="UTF-8"?>
<element>
<cfoutput>#xmlFormat(content)#</cfoutput>
</element>
</cfsavecontent>
<cffile action="write" file="#VDJ8databasepath#testFile.xml" output="#testString#">
Get ready! An upgraded Adobe Community experience is coming in January.
Learn more