Comment enregistrer changé SimpleXML objet fichier?
Donc, j'ai ce code qui recherche un nœud particulier dans mon fichier XML, unsets un nœud existant et insère une marque nouveau nœud enfant avec les données correctes. Est-il un moyen d'obtenir de nouvelles données à enregistrer dans le fichier XML avec simpleXML? Si non, est-il une autre méthode efficace pour faire cela?
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;
}
}
}
Vous devez vous connecter pour publier un commentaire.
Pas sûr de comprendre la question. Le
asXML()
méthode accepte une option de nom de fichier comme paramètre qui permettra de sauver la structure actuelle au format XML dans un fichier. Donc, une fois que vous avez mis à jour votre XML avec les conseils, juste de l'enregistrer dans un fichier.Si vous souhaitez enregistrer le même, vous pouvez utiliser
dom_import_simplexml
convertir à un DomElement et enregistrer:dom_import_simplexml
. Vous êtes le chargement de la chaîne XML deasXML()
, ce qui est la fonction de sortie ou enregistrement d'un fichier avec SimpleXml, alors pourquoi DOM? Le seul avantage de l'utilisation de DOM est que vous pouvez mettre en forme la sortie, ce qui n'est nécessaire que lorsque les gens sont de création à la main.