php simplexml 附加而不是更新

我尝试更新现有的 xml 文件,然后使用相同的名称保存它,但它是追加而不是更新。另外像 ä 这样的瑞典语字符也会转换为 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>


千万里不及你
浏览 69回答 1
1回答

摇曳的蔷薇

您需要更改两件事,第一件事是在 XML 中启用 UTF-8...<?xml&nbsp;version="1.0"&nbsp;encoding="utf-8"?>第二个是,当您使用 SimpleXML 加载数据时,变量是根元素,因此$xml也是<events>。所以你不需要在你的关卡中使用它......$xml->event->title&nbsp;=&nbsp;$eventTitle; $xml->event->eventdate&nbsp;=&nbsp;$eventDate;另外,只是说(这甚至不是有效的 xml)&nbsp;- 它可能不是您想要的,但它仍然是有效的 XML。
打开App,查看更多内容
随时随地看视频慕课网APP