It works similar to the document object model in html and java. Once i accepted that every tag is an element or node with parent and child relationship holding just a value (the content of the tag) it was easier to understand for me. The tags can be nested. of course. Imagine this construction sheme for elements in the xml or html document:
Nesting of elements can also be performed, it is just done by the concept of starting or ending tag as in html. In this case the element “Something” has a child element “BlaBla”:
Depending on the amount of shader options and parameters you need to write yourself as xml, i would start with a simple vismat and rebuild that from scratch. If you only have to re-create a few parameters you still can use the file system approach and write things to xml as strings. There should be no difference in the resulting xml file if you wite the header and all starting and ending tags properly.
For reading in the xml with large amount of dom nodes, it’s probably faster to use things like xml.Dom as you don’t have to detect all the the elements yourself.
EDIT: Here is the link to the one tutorial i´ve been working with in earlier days. It was for vbScript and i did not install anything.