dongshao4207 2011-01-08 23:34
浏览 53
已采纳

如何将新数据添加到xml文件的开头(示例内部)

After alot of work i finish to make a xml reader and writer... but my problem is that i want the newer data that i insert using my form will be added to the top of the xml file. and not in the bottom.. let me show you an example: this is the XML file:

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

<record>
<event>old event</event>
<eventDate>1/1/2009</eventDate>
<desc>old desc</desc>
</record>

<record>
<event>newer event</event>
<eventDate>12/12/2011</eventDate>
<desc>newer desc</desc>
</record>

</events>

now.. I want the XML file to be like this: newer data and then old data

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

<record>
<event>newer event</event>
<eventDate>12/12/2011</eventDate>
<desc>newer desc</desc>
</record>

<record>
<event>old event</event>
<eventDate>1/1/2009</eventDate>
<desc>old desc</desc>
</record>

</events>

This is my add.php (the file that get the POST information from the Form in the main.html :

<?php
$record = array(
 'event' => $_POST['event'],
'eventDate' => $_POST['eventDate'],
'desc' => $_POST['desc'],
);

$doc = new DOMDocument();
$doc->load( 'events.xml' );

$doc->formatOutput = true;
$r = $doc->getElementsByTagName("events")->item(0);

$b = $doc->createElement("record");

$event = $doc->createElement("event");
$event->appendChild(
$doc->createTextNode( $record["event"] )
);
$b->appendChild( $event );

$eventDate = $doc->createElement("eventDate");
$eventDate->appendChild(
$doc->createTextNode( $record["eventDate"] )
);
$b->appendChild( $eventDate );

$desc = $doc->createElement("desc");
$desc->appendChild(
$doc->createTextNode( $record["desc"] )
);

$b->appendChild( $desc );
$r->appendChild( $b );

$doc->save("events.xml");

header("Location: {$_SERVER['HTTP_REFERER']}");    
?>

Where do i need to edit to be able to make the *xml as i want?*

  • 写回答

1条回答 默认 最新

  • doutou19761022 2011-01-08 23:49
    关注

    Use

    $r->insertBefore( $b,$r->firstChild );
    

    instead of

    $r->appendChild( $b );
    

    Specification: insertBefore()

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥15 多址通信方式的抗噪声性能和系统容量对比
  • ¥15 winform的chart曲线生成时有凸起
  • ¥15 msix packaging tool打包问题
  • ¥15 finalshell节点的搭建代码和那个端口代码教程
  • ¥15 Centos / PETSc / PETGEM
  • ¥15 centos7.9 IPv6端口telnet和端口监控问题
  • ¥20 完全没有学习过GAN,看了CSDN的一篇文章,里面有代码但是完全不知道如何操作
  • ¥15 使用ue5插件narrative时如何切换关卡也保存叙事任务记录
  • ¥20 海浪数据 南海地区海况数据,波浪数据
  • ¥20 软件测试决策法疑问求解答