Salve ragazzi. Devo modificare un file xml con php. Ho un file xml di questo tipo:
Adesso, ho la necessità di cancellare tutto ciò che viene prima del tag "<ricetta" e sostituirlo con un altro file xml (dovrei aggiungere del cosice quindi). Considerando che il file che devo modificare è grande circa 30MB, come posso fare?
Ho provato
Solo che non mi funziona, mi restituisce il file originario (ricettario.xml) senza alcuna modifica. Perchè??
Il DOMDocument non mi sembra la soluzione adatta per questo problema.
Codice:
<?xml version="1.0" encoding="UTF-8"?>
<ricettario>
<carne id="Pettodipolloallimone">
<display-name lang="it">Petto di pollo al limone</display-name>
</carne>
<carne id="Tacchinoripieno">
<display-name lang="it">Tacchino ripieno</display-name>
</carne>
<carne id="Rosbiffallatte">
<display-name lang="it">Rosbiff al latte</display-name>
</carne>
<ricetta attach="Pettodipolloallimone">
<title lang="it">Ricetta: Petto di pollo al limone</title>
<sub-title lang="it">Preparazione</sub-title>
<desc lang="it">Preparo il petto di pollo. .. .. . .. . </desc>
</ricetta>
<ricetta attach="Tacchinoripieno">
<title lang="it">Ricetta: Tacchino ripieno</title>
<sub-title lang="it">Preparazione</sub-title>
<desc lang="it">Preparo il Tacchino ripieno. .. .. . .. . </desc>
</ricetta>
<ricetta attach="Rosbiffallatte">
<title lang="it">Ricetta: Rosbiff al latte</title>
<sub-title lang="it">Preparazione</sub-title>
<desc lang="it">Preparo il Rosbiff al latte. .. .. . .. . </desc>
</ricetta>
</ricettario>
Ho provato
PHP:
$xml = file_get_contents('./ricette/ricettario.xml', FILE_USE_INCLUDE_PATH);
$xmlrand = file_get_contents('./ricette/random.xml', FILE_USE_INCLUDE_PATH);
$new = preg_replace('/^(.*?)<ricetta/', $xmlrand, $xml);
fwrite(fopen('new.xml', 'wb'), $new);
Solo che non mi funziona, mi restituisce il file originario (ricettario.xml) senza alcuna modifica. Perchè??
Il DOMDocument non mi sembra la soluzione adatta per questo problema.