Я недавно обнаружил SimpleDOM для проекта, где мне нужна более продвинутая система xpath. Мне действительно это нравится, и я думаю, что это может сделать то, что вы ищете. Вы можете найти его (документы в комплекте с исходным кодом) здесь: http://code.google.com/p/simpledom/
Вы захотите взглянуть на метод sortedXPath (), которому я верю:
sortedXPath (line 888)
Run an XPath query and sort the result
This method accepts any number of arguments in a way similar to array_multisort()
1. // Retrieve all <x/> nodes, sorted by @foo ascending, @bar descending
2. $root->sortedXPath('//x', '@foo', '@bar', SORT_DESC);
3.
4. // Same, but sort @foo numerically and @bar as strings
5. $root->sortedXPath('//x', '@foo', SORT_NUMERIC, '@bar', SORT_STRING, SORT_DESC);
* access: public
void sortedXPath (string $xpath)
* string $xpath: XPath expression