поэтому я пытаюсь редактировать XML-файл, используя расширение Simplexml PHP, но я получаю некоторые проблемы и его
когда я пытался
$settings = simplexml_load_file("settings.xml");
....
if(isset($aInformation['cName']))
{
$settings->general->communityname = $aInformation['cName'];
$settings->asXML();
}
но мне не удалось сохранить шаг …
$settings = simplexml_load_file("settings.xml");
$xmlconfigs = new SimpleXMLElement($settings);
....
if(isset($aInformation['cName']))
{
$settings->general->communityname = $aInformation['cName'];
$xmlconfigs->asXML();
}
но мне тоже не удалось с ошибкой
String couldn't be parsed to XML...
и я пытался искать в этих сообщениях раньше, но они такие же, как мой неудачный пример кода что-то редактировать XML с помощью SimpleXML а также PHP SimpleXML ошибка обновления XML-файла
Второе невозможно, так как SimpleXMLElement
может принимать только правильно сформированную строку XML или путь или URL к документу XML. Но вы передаете объект класса SimpleXMLElement
вернулся simplexml_load_file
, Вот причина, по которой он бросал ошибку String couldn't be parsed to XML...
Во первых то asXML()
Метод принимает необязательное имя файла в качестве параметра, который сохраняет текущую структуру в виде XML в файл.
Если имя файла не указано, эта функция возвращает строку
успех иFALSE
по ошибке. Если параметр указан, он
возвращаетсяTRUE
если файл был успешно записан иFALSE
иначе.
Поэтому, как только вы обновите свой XML с подсказками, просто сохраните его обратно в файл.
$settings = simplexml_load_file("settings.xml");
....
if(isset($aInformation['cName']))
{
$settings->general->communityname = $aInformation['cName'];
// Saving the whole modified XML to a new filename
$settings->asXml('updated_settings.xml');
// Save only the modified node
$settings->general->communityname->asXml('settings.xml');
}
Других решений пока нет …