Khaled is welcome to use the XML engine I am writing in C++ to offer support via scripting.
codemastr made a good sueggestion about using a path-style syntax to access the data.. which is exactly what my engine is going to use.
For example, let's take the xml data s_m posted.. to access
<source>PC Buyer</source>, you would pass /library/book[1]/review/source to a function called..say... $getxmldata.
Or..in this casem, there is an undefined number of books in the library..so an iterator could be offered that could work similar to tokens..
var %child_count = $xml_child_count(/library)
var %i = 1
while (%i <= %child_count) {
echo -a $xml_get_data(/library/book[ $+ %i $+ ]/review/source)
}
or something along the lines. the details are a bit sketchy.. but i think its a nice idea.