Tak, mam ten kod, który wyszukuje określonego węzła w moim pliku XML, kasuje istniejący węzeł i wstawia zupełnie nowy węzeł podrzędny z poprawnymi danymi. Czy istnieje sposób na uzyskanie tych nowych danych do zapisania w rzeczywistym pliku XML za pomocą simpleXML? Jeśli nie, czy istnieje inna skuteczna metoda?Jak zapisać zmieniony obiekt SimpleXML z powrotem do pliku?
public function hint_insert() {
foreach($this->hints as $key => $value) {
$filename = $this->get_qid_filename($key);
echo "$key - $filename - $value[0]<br>";
//insert hint within right node using simplexml
$xml = simplexml_load_file($filename);
foreach ($xml->PrintQuestion as $PrintQuestion) {
unset($xml->PrintQuestion->content->multichoice->feedback->hint->Passage);
$xml->PrintQuestion->content->multichoice->feedback->hint->addChild('Passage', $value[0]);
echo("<pre>" . print_r($PrintQuestion) . "</pre>");
return;
}
}
}
Więc patrząc na mojego kodu powyżej, to uratuje moją zaktualizowaną obiekt $ xml aby cokolwiek $ filename to? – ThinkingInBits
Próbowałem zmienić to na $ dom = new DOMDocument ('1.0'); \t \t \t $ dom-> preserveWhiteSpace = false; \t \t \t $ dom-> formatOutput = true; \t \t \t $ dom-> loadXML ($ xml-> asXML()); \t \t \t $ dom-> save ($ filename); Ale wciąż brak aktualizacji w pliku – ThinkingInBits
Ok, faktycznie działa teraz z $ dom-> save ($ filename) ... Dzięki! – ThinkingInBits