У меня есть следующий код внутри класса:
$tmp= $this->Xml->xpath("/page/text[@id='$this->Id']"); $tmp[0]= $this->Text; echo $tmp[0]; echo $this->Xml->asXml(); $this->Xml->asXML($this->FileName); //save XML
проблема: «echo $ tmp [0]» печатает обновленный текст, а $ this-> Xml-> asXml () все еще содержит значение старого узла. Поиск по этому сайту я нашел, что это правильный способ обновить все дерево XML, но это все еще не работает. Есть идеи?
благодаря
Документам PHP крайне необходимо пример этого … ответ кажется:
$tmp = $this->Xml->xpath("/page/text[@id='$this->Id']"); $tmp[0][0] = $this->Text; echo $tmp[0][0]; echo $this->Xml->asXml(); $this->Xml->asXML($this->FileName); //save XML
Кажется, вам нужно обратиться к первому ребенку узла, который будет текстом (я предполагаю, что это то, что происходит в любом случае).
Обратите внимание на следующие скобки $tmp[0][0]
.
Не найден лучше, чем этот:
$dom=dom_import_simplexml($xml_element); // $xml_element - in your case is $tmp[0] $dom->nodeValue = "new value";
list( , $node) = each($tmp); $node->asXML($this->FileName);