1

我在 Linux Apache 服务器上运行 PHP5

我试图在我的网站中使用 XML 作为一个简单的数据库。

我需要将整数(节点的内容)加一,然后保存文件。

错误消息是:调用未定义的方法 SimpleXMLElement::replaceChild()

这是我的代码:

<?php
$x = $_GET['x'];
$y = $_GET['y'];
$z = $_GET['z'];        
$dom = simplexml_load_file("questions.xml");
if ($dom->question['id'] == $x) {
    $poll = $dom->question->poll;
    if ($z == 0) {
        $yes = $poll->yes;
        $upper = $yes + 1;
        $yes->replaceChild($yes, $upper);
    } elseif ($z == 1) {
        $no = $poll->no;
        $lower = $no + 1;
        $no->replaceChild($no, $lower);
    }
}
?>

问题.xml

<?xml version="1.0" encoding="utf-8" ?>
<questions>
    <question id="does-god-exist">
    <poll>
        <yes>0</yes>
        <no>0</no>
    </poll>
    </question>
</questions>
4

2 回答 2

1

replaceChildDOMNode类的方法,而不是simpleXML. SimpleXML没有提供任何替换或删除子项的方法,因此您需要使用dom_import_simplexml,然后您才能replaceChild在转换后的 DOM 对象中使用该函数。

于 2013-04-01T14:27:40.437 回答
1

你有这个:

$yes = $poll->yes;
$upper = $yes + 1;
$yes->replaceChild($yes, $upper);

... SimpleXMLElement$yes对象在哪里,并且此类没有任何方法。我猜你想要这样的东西:replaceChild()

$poll->yes++;
于 2013-04-01T14:33:58.100 回答