пытаясь редактировать XML-файл с помощью php simplexml

поэтому я пытаюсь редактировать 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-файла

1

Решение

Второе невозможно, так как 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');
}
0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]