php simplexml 附加而不是更新
php simplexml append instead of updating
我尝试更新现有的 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>Ä</title>
<eventdate>2019-12-01</eventdate>
</event>
<events><event><title>Ä</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>
您需要更改两件事,第一件事是在 XML...
中启用 UTF-8
<?xml version="1.0" encoding="utf-8"?>
第二个是当你使用SimpleXML加载数据时,变量是根元素,所以$xml
是<events>
.所以你不需要在你的关卡中使用它...
$xml->event->title = $eventTitle;
$xml->event->eventdate = $eventDate;
此外,只想说 (甚至无效 xml) - 它可能不是您所追求的,但它仍然有效 XML.
我尝试更新现有的 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>Ä</title>
<eventdate>2019-12-01</eventdate>
</event>
<events><event><title>Ä</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>
您需要更改两件事,第一件事是在 XML...
中启用 UTF-8<?xml version="1.0" encoding="utf-8"?>
第二个是当你使用SimpleXML加载数据时,变量是根元素,所以$xml
是<events>
.所以你不需要在你的关卡中使用它...
$xml->event->title = $eventTitle;
$xml->event->eventdate = $eventDate;
此外,只想说 (甚至无效 xml) - 它可能不是您所追求的,但它仍然有效 XML.