Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/xml/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 有没有一种方法可以在没有DOM的情况下写入/删除xml文件?_Php_Xml_Dom - Fatal编程技术网

Php 有没有一种方法可以在没有DOM的情况下写入/删除xml文件?

Php 有没有一种方法可以在没有DOM的情况下写入/删除xml文件?,php,xml,dom,Php,Xml,Dom,我正在尝试在xml文件上编写。 但是我的服务器禁用了DOM。 所以我不能使用DOM函数 除了DOM之外,还有其他方法可以在xml上编写吗 文件: xml: 我能做什么?您可以像编辑纯文本文件一样编辑该文件。但是,您需要确保所有元素都已关闭,并且所有数据都已正确转义。如果您只需要输出XML,这是可行的,但是编写一个可以添加和修改现有XML数据的解析器是一项艰巨的工作。最好尝试启用DOM或查找现成的库。您可以像编辑纯文本文件一样编辑该文件。但是,您需要确保所有元素都已关闭,并且所有数据都已正确转义。

我正在尝试在xml文件上编写。 但是我的服务器禁用了DOM。 所以我不能使用DOM函数

除了DOM之外,还有其他方法可以在xml上编写吗

文件:

xml:


我能做什么?

您可以像编辑纯文本文件一样编辑该文件。但是,您需要确保所有元素都已关闭,并且所有数据都已正确转义。如果您只需要输出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']}");