php просто xml добавить вместо обновления - PullRequest
0 голосов
/ 01 августа 2020

Я пытаюсь обновить существующий файл xml, а затем сохранить его с тем же именем, но он добавляется вместо обновления. Также символы Swedi sh, такие как Ä, преобразуются в unicode, можно ли это предотвратить, указав кодировку?

  $folderPath = dirname(__DIR__). DIRECTORY_SEPARATOR;   // website/
  $fileName = 'event.xml';
  $destFile = $folderPath .$fileName; // website/event.xml

  $xml = simplexml_load_file($destFile);

  //Update
  $xml->events->event->title = $eventTitle;
  $xml->events->event->eventdate = $eventDate;

  // save the updated document
  $xml->asXML($destFile);

, поэтому я получаю xml как это (что даже недействительно xml) ...

<?xml version="1.0" standalone="yes"?>
<events>
 <event>
    <title>&#xC4;</title>
    <eventdate>2019-12-01</eventdate>
 </event>
<events><event><title>&#xC4;</title><eventdate>2019.12.01</eventdate></event></events></events>

когда мне нужно, чтобы это было так:

<?xml version="1.0" standalone="yes"?>
<events>
 <event>
    <title>Å</title>
    <eventdate>2019-12-01</eventdate>
 </event>
</events>

1 Ответ

0 голосов
/ 01 августа 2020

Вам нужно изменить две вещи: первая - включить UTF-8 в XML ...

<?xml version="1.0" encoding="utf-8"?>

Вторая - когда вы загружаете данные с помощью Simple XML, переменная - это элемент root, поэтому $xml это <events>. Так что вам не нужно использовать это на своих уровнях ...

$xml->event->title = $eventTitle;
$xml->event->eventdate = $eventDate;

Кроме того, просто чтобы сказать (что даже недействительно xml) - это так, может не быть тем, что вам нужно, но это все еще актуально XML.

...