The GnuCash
XML data file can be transformed to almost any other data format (e.g.,
QIF, CSV...) quite easily if one is familiar with the
“Extensible Stylesheet Language Transformations”
XSLT. The GnuCash
data file is
well-formed XML, and it can therefore be run through an
XSLT parser with an associated stylesheet. This allows one to transform the
file to just about any format that can be designed, given a properly written stylesheet.
A few steps need to be followed. The writing of a stylesheet is a task for a different time, but if you can get one written, here’s what you need to do:
Copy the GnuCash
XML data file to a working file.
Important | |
---|---|
If the file was last modified by a version of <gnc-v2 xmlns:cd="http://www.gnucash.org/XML/cd" xmlns:book="http://www.gnucash.org/XML/book" xmlns:gnc="http://www.gnucash.org/XML/gnc" xmlns:cmdty="http://www.gnucash.org/XML/cmdty" xmlns:trn="http://www.gnucash.org/XML/trn" xmlns:split="http://www.gnucash.org/XML/split" xmlns:act="http://www.gnucash.org/XML/act" xmlns:price="http://www.gnucash.org/XML/price" xmlns:ts="http://www.gnucash.org/XML/ts" xmlns:slot="http://www.gnucash.org/XML/kvpslot" xmlns:cust="http://www.gnucash.org/XML/cust" xmlns:entry="http://www.gnucash.org/XML/entry" xmlns:lot="http://www.gnucash.org/XML/lot" xmlns:invoice="http://www.gnucash.org/XML/invoice" xmlns:owner="http://www.gnucash.org/XML/owner" xmlns:job="http://www.gnucash.org/XML/job" xmlns:billterm="http://www.gnucash.org/XML/billterm" xmlns:bt-days="http://www.gnucash.org/XML/bt-days" xmlns:sx="http://www.gnucash.org/XML/sx" xmlns:fs="http://www.gnucash.org/XML/fs" xmlns:addr="http://www.gnucash.org/XML/custaddr">
|
Note | |
---|---|
You can put pretty much anything you want behind the equal signs, but a unique URL is what is typically used. |
Create an XSLT stylesheet containing the transformation your desire, or obtain one that’s already written.
User Contributed XSLT Stylesheets
in our repository: https://github.com/Gnucash/gnucash/tree/stable/contrib/xslt
in our wiki: https://wiki.gnucash.org/wiki/De/export_to_excel_xls_transform
Install an XSLT processor such as Saxon (https://en.wikipedia.org/wiki/Saxon_XSLT) or Xalan (https://en.wikipedia.org/wiki/Apache_Xalan). Any conforming processor will do, really...
Run the work file and the stylesheet through the processor according to the processor’s instructions.
You will now have a file in the desired output format. An enterprising individual could go so far as
to write a stylesheet to transform the GnuCash
data file to an Apache OpenOffice
/LibreOffice
Calc (or
vice-versa, for that matter). Such things as QIF ought to be a little
less work.
Benefits are that you don’t need to write a Scheme module or a new C routine to do this transformation. Anyone who knows or can learn XML and XSLT can perform this task. Not much harder, really, than writing a Web page....
Anyhow, I just wanted this tidbit to be captured somewhere permanently. The process works on 5.9 datafiles, and ought to work on earlier versions, too.