Есть исходный xml магазина (или php скрипт, генерирующий xml каталог из базы)
и xslt (генерирующийся на php динамически в зависимости от параметров, передаваемых скрипту)
Суть проблемы: если обрабатывается xml файл порядком до 10МБ, то все норм.
а вот на xml ~17+ mb валится из-за нехватки памяти. (на сервере выставил максимальное время обработки скрипта и максимально возможную выделяемую память, проблема не решилась)
обработку делаю через xsltprocessor
$xml = new DOMDocument;<br>
$xml->load('http://site.ru/yandex_market.php');<br><br>
$xsl = new DOMDocument;<br>
$xsl->load('http://mysite.ru/manager/template.php?a='.$_GET['a'].'&o='.$_GET['o'].'&c='.$_GET['c']);<br><br>
// Configure the transformer<br>
$proc = new XSLTProcessor;<br>
$proc->importStyleSheet($xsl); // attach the xsl rules<br><br>
echo $proc->transformToXML($xml);<br>
если запускать через подобный скрипт, ругается на xslt_create(), хотя в phpinfo модули xml, xlst подключены
<?php<br><br>
// Разместить новый XSLT-процессор<br>
$xh = xslt_create();<br><br>
// Обработать документ<br>
if (xslt_process($xh, 'sample.xml', 'sample.xsl', 'result.xml')) {<br>
print "SUCCESS, sample.xml was transformed by sample.xsl into result.xml";<br>
print ", result.xml has the following contents\n<br>\n";<br>
print "<pre>\n";<br>
readfile('result.xml');<br>
print "</pre>\n";<br>
}<br>
else {<br>
print "Sorry, sample.xml could not be transformed by sample.xsl into";<br>
print "result.xml the reason is that " . xslt_error($xh) . " and the ";<br>
print "error code is " . xslt_errno($xh);<br>
}<br><br>
xslt_free($xh);<br><br>
?><br>
ну и вообще, не знаю поможет ли это?!
Вообще суть задачи заменить ссылки в offer/url (см.
yml) на свои.