I'll expand a bit on what @nirvana-msu meant, without coding the solution for you as that would be very tedious.
>> xDoc = xmlread(fullfile(filename));
>> xRoot = xDoc.getDocumentElement()
xRoot =
[GTOMonteCarlo: null]
xRoot here is your starting point, i.e. the root node of the document.
The root node, like any node, has children. From your xml file you can see that the direct children of GTOMonteCarlo are STELAversion, GTOInputParameters, etc. Almost. The empty 'text' nodes contained between those tags are also valid nodes. Once you've accessed a node, play with the following commands, until you figure out what's going on.
>> RootChildren = xRoot.getChildNodes()
RootChildren =
[GTOMonteCarlo: null] % not very informative, I agree.
% but trust me that this is now a list of nodes
>> RootChildren.getLength % How many DOM child elements does this list contain?
ans =
7 % 7! Great. Let's access them and inspect them
>> RootChildren.item(1) % get the first one
ans =
[STELAVersion: null] % hm ... that wasn't it. What's the next one?
>> RootChildren.item(2)
ans =
[#text: ] % that's not it either.
At this point you should realise that the node you need to descend into is at position 5. I.e. in our tree we have one STELLAVersion node, an empty text node, another STELLAVersion node (which for some reason is incorrectly indented, but anyway), another empty text node, and THEN we get to the node you're interested in. So it's child 5 on the list.
>> RootChildren.item(5)
ans =
[GTOInputParameters: null] % bingo! Let's get this guy's children
>> GTOChildren = RootChildren.item(5).getChildNodes()
GTOChildren =
[GTOInputParameters: null]
>> GTOChildren.getLength
ans =
7
>> GTOChildren.item(1)
ans =
[AbstractInputParameters: null]
etc etc.
You're supposed to find a way to traverse the nodes and their children, until you get to the nodes that interest you, i.e. the 'min' and 'max' nodes.
Unfortunately these xml functions are largely undocumented ... but if you press tab once or twice after you type a node variable and a dot (i.e. "RootChildren.[TAB][TAB]" ) you will get a popup list of all the functions available for that type of node (or list of nodes), and you can play around with them and see what they do; most have fairly self-explanatory names.
One of those for instance, is .getTextContent. You will need that to get your numerical value once you've got the 'min' node in your hands, i.e.
MinNode.getTextContent
If that's the end of your mission, great! But if in fact you're trying to create an xml file with updated values as I understood you're trying to do, then read on.
I've spotted a .setTextContent which presumably is what you need if you're after setting a value instead.
Unfortunately, your nodes don't update their content and that's it.
Any node object you have is simply an independent variable in memory.
So when you update a node, you then have to call ParentNode.replaceChild(NewChildNode, OldChildNode), and make all those child substitutions all the way back into your Root node, so that you end up with a shiny new Root node to add to your xml Document.
Fortunately, while things like replaceChild are undocumented in matlab, presumably they directly correspond to existing javascript DOM functions, which you can find here: http://www.w3schools.com/jsref/dom_obj_all.asp
(for example, the replaceChild function is here: http://www.w3schools.com/jsref/met_node_replacechild.asp)
Once you have your updated Root node, you replace your xDoc root node with that one, and then you can use xmlwrite with your new xDoc, to write to a new xml file.
See the xmlwrite help to see how to use that, as well as another simple example of DOM manipulation.
Hope this gets you started. Good luck.