name mode size
Used by APSK Apphoards 040000
# Salty XML Transformer A crude but effective-enough way to use (or try to use) any XSLT sheet to transform any XML file or VUE concept map file. ---- <br>Note, Nov. 26, 2018. Found out earlier this month while building APSK GLMP-GTK that Salty XML Transformer still works fine with PHP 5.6.38 and Saxon/C v1.02 and v1.1.0, even though I hadn't changed Salty since April 2017! No very important changes yet. Removed the version number. <br>Note, April 11, 2017. Version 1.2.1. A small error was fixed. Note, April 3, 2017. Version 1.2. Now it's possible to give Salty arguments to pass as parameters to XSLT. <br>Note, March 28, 2017. Version 1.1. Found a crude workaround for the problem of Unicode characters like 🗁 getting messed up when transforming VUE maps. Now that seems to work nicely. However, things still don't work so well with plain, non-VUE XML files, unless those XML files contain Unicode entities instead of actual Unicode characters. Not sure yet exactly what's going wrong or how to fix it. ---- <br>Named "Salty" because the name XSLT reminds me of salt, and because I didn't have the energy or patience to try to make something more perfect and less crude. ("Crude", "coarse", and "vulgar" are some of the less-frequently-used meanings of the word "salty".) I also didn't feel like fiddling with Markdown, so this Readme also isn't as nicely-formatted as I would like. <br>Can be run either from the command line, or on a web server, though this was not designed with security in mind, so I don't recommend using it on any web server connected to the internet. <br>Works with PHP 5.6.13 and hopefully other versions. Also, I made most of this in Lighthouse 64 Puppy Linux 6.02 Beta 2, and so far have made no effort to make sure it works properly with other GNU/Linuxes. <br>Requires the XSLT processor Saxon/C: []( <br>Here's my blog post about how to make Saxon/C into a PHP extension when using Lucid Puppy Linux 5.2.8 version 004. (I eventually also added some notes related to Lighthouse 64 Puppy Linux 6.02 Beta 2.) []( <br>Also uses the standard GNU/Linux tool "sed". <br>Some of the Saxon-related code is slightly modified code from the PHP demo scripts included with Saxon/C. ---- Command line arguments: Arg 1: A path to an XML file or VUE map to be transformed. Arg 2: A path to an XSLT sheet which will be used on the file pointed out by Arg 1. <br>Optional Arg 3: Set to "y" or "yes" or "revuize" (all equivalent) to set "should_convert_output_back_to_vue_format" to true. Makes Salty run the included Salty-related Perl script "unrelocvuecomments" (whose longer name is "Undo Moving a VUE Map's Top Comment Lines Into a CDATA Section") on the XSLT output. <br>Optional Arg 4: A path to the file where output should go. Must be inside whatever path is in the Dest_Folder constant. By default, that path is: "/root/Web-Server/Salty-XML-Transformer-Output/" Relative paths are assumed to be in there. (Except if the path contains dots that lead out of that folder.) <br>Optional Arg 5: Set to "y" or "yes" or "mojifix" (all equivalent) to set "should_try_to_convert_trashed_unicode_to_entities" to true. Makes Salty run the included Salty-related Perl script "somehow-fix-unicode-garbage-in-Salty-XML-Transformer-output" on the XSLT output. (Moji is short for mojibake, "the name for incorrect, unreadable characters shown when computer software fails to show text correctly.") <br>All args beyond Arg 5 are assumed to be parameters that should be passed into the XSLT sheet being used. If a parameter's value should be interpreted as an Xpath statement, put ":xpath" after the parameter's name. Example: time:xpath=current-dateTime() <br>Everything else is assumed to be something other than an Xpath. By default, Salty converts non-Xpath parameters to XdmValues using Saxon's createAtomicValue function. ---- Getvars (when run in web mode) "xml" = Arg 1 above "xslt" = Arg 2 above "revuize" = Arg 3 above "dest" = Arg 4 above "mojifix" = Arg 5 above Any other name = Assumed to be a parameter for XSLT.