Я предполагаю, что ваш инструмент конвертирует результат XPath в строку - то есть он делает эквивалент
string(/xmpmeta/RDF/Description/inks/Seq/li/dotshape)
и когда XPath преобразуется в строку, подобную этой, вы получаете только первое совпадение.
Вы должны посмотреть в API инструмента, который вы используете, для какого-то другого вида вызова, который возвращает набор узлов или список узлов вместо строки или скалярного значения.