По первому вопросу:
С именами элементов объекта содержащими дефис, надо поступать так.
$print .= '<saved-copy-url>' . htmlspecialchars($group->doc->{'saved-copy-url'}) . '</saved-copy-url>' . "\n";
По второму вопросу:
Если регион статический, то можно жестко прописать его в урле, в файле config.php.
$aLocal['url'] = 'http://xmlsearch.yandex.ru/xmlsearch?user=***&key=**************<=51';
В случае использования региона, надо немного исправить запрос, убрав неранжирующее "и".
$sPost = '<?xml version="1.0" encoding="windows-1251"?>' . "\n"
. '<request>' . "\n"
. '<query>' . htmlspecialchars($aLocal['query']) . '</query>' . "\n"
. '<groupings>' . "\n"
. '<groupby attr="" mode="flat" groups-on-page="10" docs-in-group="1" />' . "\n"
. '</groupings>' . "\n"
. '<page>' . $aLocal['page'] . '</page>' . "\n"
. '</request>';
По сути это все, но, как я вижу, старый способ с выбором региона вроде работает, только надо немного поправить синтаксис. В этом случае неранжирующее "и" убирать не следует.
$aLocal['host'] = '11000051'; // Это у нас в конфигурационном файле номер региона плюс 11000000.
$aLocal['host_s'] = sprintf('cat:%s', $aLocal['host']); // Это меняем в request.php