Php 有没有一种方法可以在没有DOM的情况下写入/删除xml文件?
我正在尝试在xml文件上编写。 但是我的服务器禁用了DOM。 所以我不能使用DOM函数 除了DOM之外,还有其他方法可以在xml上编写吗 文件: xml:Php 有没有一种方法可以在没有DOM的情况下写入/删除xml文件?,php,xml,dom,Php,Xml,Dom,我正在尝试在xml文件上编写。 但是我的服务器禁用了DOM。 所以我不能使用DOM函数 除了DOM之外,还有其他方法可以在xml上编写吗 文件: xml: 我能做什么?您可以像编辑纯文本文件一样编辑该文件。但是,您需要确保所有元素都已关闭,并且所有数据都已正确转义。如果您只需要输出XML,这是可行的,但是编写一个可以添加和修改现有XML数据的解析器是一项艰巨的工作。最好尝试启用DOM或查找现成的库。您可以像编辑纯文本文件一样编辑该文件。但是,您需要确保所有元素都已关闭,并且所有数据都已正确转义。
我能做什么?您可以像编辑纯文本文件一样编辑该文件。但是,您需要确保所有元素都已关闭,并且所有数据都已正确转义。如果您只需要输出XML,这是可行的,但是编写一个可以添加和修改现有XML数据的解析器是一项艰巨的工作。最好尝试启用DOM或查找现成的库。您可以像编辑纯文本文件一样编辑该文件。但是,您需要确保所有元素都已关闭,并且所有数据都已正确转义。如果您只需要输出XML,这是可行的,但是编写一个可以添加和修改现有XML数据的解析器是一项艰巨的工作。最好尝试启用DOM或找到现成的库。如果您使用的是PHP5,则可以使用如果您使用的是PHP5,则默认情况下在PHP5中启用DOM。如果您的主机禁用了它,请询问原因,因为没有理由这样做。更好的是,在PHP5中默认启用switch providers.DOM。如果您的主机禁用了它,请询问原因,因为没有理由这样做。更好的是,交换提供者。
<?xml version="1.0" encoding="UTF-8"?>
<events>
<record>
<event>aaa</event>
<eventDate>bbb</eventDate>
<desc>ccc</desc>
</record>
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']}");