我有一个包含这样的标签的 xml 文件。
<server>
<conversation ip="12.0.0.1" email="none">
<chat userstatus="1" adminstatus="2" username="admin">muja</chat>
</conversation>
</server>
现在我想更新对话标签的电子邮件属性。当我使用$conv->getAttribute("email")
它时,我得到了正确的结果,即无。但如果我尝试使用$conv->setAttribute("email","abc")
它来设置它,它不会更新值。这就是我正在做的事情。
这是 GetClientConversation():
private function GetClientConversation()
{
foreach($this->conversation as $convTag)
{
if($convTag->getAttribute("ip") == $this->clientip)
{
return $convTag;
}
}
return "noConversation";
}
此函数返回我需要的正确对话标签。
我得到这些对话标签数组使用
$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";
}
}
这是我尝试设置属性的代码。