因此,我有这段代码,用于搜索 XML 文件中的特定节点、取消设置现有节点并插入具有正确数据的全新子节点。有没有办法使用 simpleXML 将这些新数据保存在实际的 XML 文件中?如果没有,是否有另一种有效的方法来做到这一点?
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;
}
}
}
不确定我是否理解这个问题。这asXML() http://php.net/manual/en/simplexmlelement.asxml.php方法接受一个可选的文件名作为参数,它将当前结构作为 XML 保存到文件中。因此,一旦您使用提示更新了 XML,只需将其保存回文件即可。
// Load XML with SimpleXml from string
$root = simplexml_load_string('<root><a>foo</a></root>');
// Modify a node
$root->a = 'bar';
// Saving the whole modified XML to a new filename
$root->asXml('updated.xml');
// Save only the modified node
$root->a->asXml('only-a.xml');
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)