let’s suppose that i have this tag
JavaScript
x
<root>
<foo> </foo>
</root>
with this html form
JavaScript
<form action="foo.php method="post">
<input type="text" name="something">
<input type="submit" name="ok">
</form>
if I want to insert data I do
JavaScript
<?php
if(isset($_POST['ok'])) {
$data=simplexml_load_file('foo.xml') or die('error');
if(isset($_POST['something'])) {
$data->foo= $_POST['something'];
}
it work nicely without any problem now if we want to insert a data in the sub tag
JavaScript
<root>
<foo>
<test></test>
</foo>
</root>
I thought we should do something like
JavaScript
if(isset($_POST['something'])) {
$data->foo->test= $_POST['something'];
}
let’s suppose that we have “hello” in $_POST['something']
variable
I expected to have something like
JavaScript
<root>
<foo>
<test>Hello</test>
</foo>
</root>
but it does not work
Advertisement
Answer
JavaScript
<?php
$root=simplexml_load_file("file.xml") or die("Error"); // first we load the file
if(isset($_POST['ok'])){ // if we validate the form
$something= $_POST['something']; // we recover the data with POST
// let assume that we have 'hello' inside $something
$root->foo->test = $something; //then we send the data to the xml file
$root->asXML('foo.xml');
}
the output
JavaScript
<?xml version="1.0"?>
<root>
<foo>
<test>Hello</test>
</foo>
</root>