有没有办法在没有DOM的xml文件上编写/删除?

时间:2011-01-10 13:12:30

标签: php xml dom

我正在尝试写xml文件。 但我的服务器已禁用DOM。 所以我不能使用DOM功能。

有没有办法在xml以外写入DOM?

文件:

的xml:

<?xml version="1.0" encoding="UTF-8"?>
<events>
<record>
<event>aaa</event>
<eventDate>bbb</eventDate>
<desc>ccc</desc>
</record>

parser.php:

header("Content-type: text/html; charset=utf-8");

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

$doc = new DOMDocument();
$doc->load( 'calendar.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->insertBefore( $b,$r->firstChild );

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

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

我能做什么?

2 个答案:

答案 0 :(得分:1)

如果您使用的是PHP5,则可以使用SimpleXML

答案 1 :(得分:0)

您可以将文件编辑为纯文本文件。但是,您需要确保关闭所有元素并正确转义所有数据。如果您只需要输出XML,那么这是可行的,但编写一个可以添加和修改现有XML数据的解析器是一项艰巨的任务。最好尝试启用DOM或找到开箱即用的库。