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..

Code:
var %child_count = $xml_child_count(/library)
var %i = 1
while (%i &lt;= %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.