Как изменить значение в XML-файле с помощью simpleXML?
Я знаю, как создать файл, но не как изменить значение в существующем файле?
Конечно, вы можете редактировать с помощью SimpleXML :
$input = <<<END <?xml version='1.0' standalone='yes'?> <documents> <document> <name>spec.doc</name> </document> </documents> END; $xml = new SimpleXMLElement($input); $xml->document[0]->name = 'spec.pdf'; $output = $xml->asXML();
Взгляните на примеры .
Загрузите XML с помощью SimpleXML и внесите изменения. Затем вы можете использовать метод asXML для сохранения XML в файл (вы передаете имя файла в качестве аргумента):
$xml = new SimpleXMLElement( $xmlString ); // do the manipulation here $xml->asXML ( '/path/to/your/file.xml' );
Имейте в виду, что, хотя вы можете редактировать XML с помощью SimpleXML, существуют ограничения. Например, вы можете удалить или удалить узел или элемент. Вы можете очистить его так, чтобы его пробел, но вы не можете полностью его устранить. Для этого вам нужен DOM или что-то в этом роде.
Я работаю так (это совсем одно и то же, но это может помочь): Файл test.xml может быть любым расширением, если это простой текстовый текст.
test.xml:
<?xml version="1.0" encoding="utf-8"?> <sitedata> <Texts> <ANode SomeAttr="Green" OtherAttr="Small"/>This is the text I'm changing.</ANode> </Texts> </sitedata>
И код PHP:
$xml=simplexml_load_file("test.xml") or die("Error: Cannot create object"); $SomeVar="<b>Text. This supports html code.</b><br/>I also work with variables, like GET or POST."; $xml->Texts[0]->{'ANode'}=$SomeVar; $xml->asXml('test.xml');
Результаты test.xml:
<?xml version="1.0" encoding="utf-8"?> <sitedata> <Texts> <ANode SomeAttr="Green" OtherAttr="Small"/><b>Text. This supports html code.</b><br/>I also work with variables, like GET or POST.</ANode> </Texts> </sitedata>
Надеюсь, поможет!