1

次のエラーが発生し続けます。

致命的なエラー: 3 行目の /www/zzl.org/t/h/e/theseminary/htdocs/submit.php の非オブジェクトに対するメンバー関数 addChild() の呼び出し

独自のphpファイル内の私のコードは次のとおりです。

<?php
$xmlobject = simplexml_load_file('data.xml');
$xmlobject[0]->channel[0]->posts[0]->addChild("item");
$itemcount = $xmlobject->channel->posts->count();
$xmlobject->channel[0]->posts[0]->item[$itemcount]->addChild("title", $title);
$xmlobject->channel->posts->item[$itemcount]->addChild("content", $content);
$xmlobject->asxml("data.xml");
header( "Location: $url" );
?>

この質問が何度も寄せられていることは承知していますが問題の解決策が見つかりませんでした。

役立つ場合は、XML ファイルを次に示します。

<?xml version="1.0"?>
<channel>
<title></title>
<description></description>
<posts>
</posts>
</channel>
4

2 に答える 2

3

これを変える...

$xmlobject[0]->channel[0]->posts[0]->addChild("item");

これに...

$xmlobject->posts[0]->addChild("item");

理由:<channel>はルート要素であり$xmlobject、ルート要素を表します。

これが、XML も投稿することが不可欠である理由です。
ライブデモを見る @ http://codepad.viper-7.com/DffgLG

ところで、この行...

$itemcount = $xmlobject->posts->count();

-ノードをカウントします。<posts>カウントしたい場合は<item>s、行ってください...

$itemcount = $xmlobject->posts->item->count();

...$itemcount--インデックスは 0 から始まるため、必ず実行してください。

于 2013-03-25T23:49:40.863 に答える
0

エラーはこの行に記載されています

$xmlobject[0]->channel[0]->posts[0]->addChild("item");

何が起こっているのか正確に「話している」のです。

単にオブジェクトではありません (またはまたはposts[0]のようなことをしようとしているようなものです)1->addChild("item");'foo'->addChild("item");null->addChild("item");

値(つまり、オブジェクト)->post[0]を返すと確信していますか?SimpleXMLElement

于 2013-03-25T13:13:40.570 に答える