Por lo tanto, tengo este código que busca un nodo particular en mi archivo XML, desarma un nodo existente e inserta un nuevo nodo secundario con los datos correctos. ¿Hay alguna forma de que esta nueva información se guarde dentro del archivo XML real con simpleXML? Si no, ¿hay otro método eficiente para hacer esto?¿Cómo guardar el objeto SimpleXML cambiado de nuevo en el archivo?
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;
}
}
}
Así que mirando mi código anterior, esto ahorrará mi objeto $ XML actualizado a lo $ nombre de archivo es? – ThinkingInBits
Intenté cambiarlo a $ 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); Pero todavía no hay actualización en el archivo – ThinkingInBits
Ok, en realidad sí funciona ahora con $ dom-> save ($ filename) ... ¡Gracias! – ThinkingInBits