Programming tools for dealing with .SCRIVX (XML) file?

I’ve been thinking about trying to do some proof-of-concept programming of a Scrivener related timeline capability different in approach than that in Scrivener and Aeon Timeline. It would involve reading and modifying the .SCRIVX file, which is XML format, and associated files inside the project folder. This would most likely be on a Windows desktop machine, with an eye to portability (Mac, iPad). See QUESTIONS below, below DISCLAIMERS.

DISCLAIMERS:

  • Yes, I understand that modifying with anything other than Scrivener itself (and Aeon Timeline?) is not recommended and not supported.
  • Yes, I understand that in the unlikely event I manage to do this, and the even more unlikely event that it would be suitable for public release, it should include a disclaimer that it is not in any way associated with or supported by Literature & Latte and that it poses a risk of corrupting Scrivener projects.

QUESTIONS

What programming tools (languages, environments, additional tools, …) would provide robust XML file manipulation capability?

Qt, given that it is employed for Scrivener for Windows and includes some XML and GUI capability? Additional beyond Qt itself?

Python, plus XML extras/add-ons? Performance and robustness issues?

Swift (Apple). Robust XML and GUI? Any chance would be practical to develop or at least experiment on an iPad (Swift Playgrounds?, other?)? Is Swift viable on or portable to Windows?

Other?

Thanks.

Hm, I would personally stick to a scripting language like Python / Ruby / Javascript for such a tool. But it really depends how important your GUI is relative to the robust XML handling? I’ve done a bit of XML manipulation in Ruby using Nokogiri and it was a real pleasure, but I imagine similar quality libraries exist for Python and Javascript.

I’ve used Python to make a small GUI app to control streaming cameras on a Raspberry Pi, using PyQT and it was very easy and nice. I think the ease-of-use of Python and the powers of QT are a great combo (and Pythons QT bindings are better developed than for Ruby, which otherwise is my preferred scripting language by far). Python also has a bunch of options to bundle a tool into a single “app”, and several other GUI libraries. Python has a huge community and lots of info available, though I personally hate indentation-sensitive syntax.

Javascript / Typescript in particular has a whole lot of steam behind it for cross-platform apps, thanks to Electron and a bunch of newer / leaner toolsets. From the developer side, they are hugely popular for a reason…

Swift? I think it is not as mature and certainly doesn’t have the same cross-platform powers the other options do. I have no idea how it would work developing on Windows, I think swift is just the core, and have no idea what the state of a cross-platform GUI toolset would look like, it seemed to me you need to do native GUIs and manage them separately?

I’ve done a bit in Python, too: GitHub - dhaun/scrivx2pltr: Creates a Plottr file from a Scrivener 3 project