This is a question from a co-worker. He is trying to figure out how to save to the hard drive a well-formed XML document that he wants to create in memory. He's trying to create the document by using a doc_open command, but this doesn't work because the file doesn't exist yet; using the command without specifying a filename doesn't cause an error, but it's not known to him where the document is saved by the doc_save command.
Seems simple enough: he just wants to create a document in memory, insert data into it, save it, and open it later for reading. This should all be invisible to the user.
Should he be using "file_*" commands instead of "doc_*" commands?
Does any of this make any sense to anyone? Any ideas?
He should probably use either save_as or write commands, since they let you specify the filename explicitly. I'm not sure what would happen if you invoke doc_save() on a new file that doesn't yet have a filename, I suspect it would either fail (which you might be able to test by checking $main::ERROR) or it would save it in some inconvenient spot like a temp directory.
With save_as or write, you can tell it exactly where you want the file saved so you can find it later.
Looking at the documentation, calling the doc_open function without a path will open an empty document, so you should be OK there. It returns the document identifier that can be used in other acl functions. If you need to know where the document is saved doc_path will do the trick, but not when doc_open is called without a path. But you can use the doc_set_path function to specify where you want the doc saved to. Then calling doc_save will write the document to the path you specified in doc_set_path.