В прошлом я использовал расширение Tidy PHP (http://us3.php.net/manual/en/book.tidy.php) для очистки HTML / XML перед передачей его в QueryPath.
XML, на который вы ссылались выше, довольно чистый, а также довольно маленький.
Если единственной проблемой являются точки в именах элементов, то, вероятно, сработает и предварительная обработка с помощью регулярного выражения. И это будет самое быстрое решение. Я предполагаю, что вы могли бы сделать preg_replace('/<body\./g', '<body-', $xml)
и получитьисправлено. (Это заменит body.content
на body-content
и т. д.)