このようなタグを含むxmlファイルがあります。
<server>
<conversation ip="12.0.0.1" email="none">
<chat userstatus="1" adminstatus="2" username="admin">muja</chat>
</conversation>
</server>
ここで、会話タグのメール属性を更新したいと思います。私がそれを使用する$conv->getAttribute("email")
と、正しい結果が返されます。つまり、none.しかし、それを使用して設定しようとすると$conv->setAttribute("email","abc")
、値が更新されません。これが私がやっていることです。
これは GetClientConversation() です。
private function GetClientConversation()
{
foreach($this->conversation as $convTag)
{
if($convTag->getAttribute("ip") == $this->clientip)
{
return $convTag;
}
}
return "noConversation";
}
この関数は、必要な正しい conversationTag を返します。
そして、これらの conversationsTags 配列を使用して取得します
$this->conversation=$this->xmlDom->getElementsByTagName("conversation");
編集:
public function GetConversation()
{
$conv=$this->GetClientConversation();
if($conv!="noConversation")
{
if($conv->getAttribute("email")=="none")
{
$conv->setAttribute("email","abc"); // -- Here
return json_encode($this->RetrieveConversation($conv));
}
else if($conv->getAttribute("email")==$this->adminEmail)
{
return json_encode($this->RetrieveConversation($conv));
}
else
{
return "Admin Already Chatting";
}
}
else
{
$this->CreateNewConversation();
return "no";
}
}
これは、属性を設定しようとしているコードです。