I am trying to accomplish the following:
Harry potter
Adven
Affffding nodes to the DOM requires 3 Steps
createElement()
or createTextNode()
Step 2 and 3 are exchangeable. You can configure a node after you appended it or before. appendChild()
returns the append node.
I indented the calls depending on the level in the result xml:
$doc = new DOMDocument('1.0');
$doc->formatOutput = true;
$books = $doc->appendChild($doc->createElement('books'));
$book = $books->appendChild($doc->createElement('book'));
$name = $book->appendChild($doc->createElement('name'));
$name->appendChild($doc->createTextNode('Harry potter'));
$category = $book->appendChild($doc->createElement('category'));
$category->appendChild($doc->createTextNode('Adventure | Family | Fantasy'));
$pages = $book->appendChild($doc->createElement('pages'));
$pages->appendChild($doc->createTextNode('850'));
$author = $book->appendChild($doc->createElement('author'));
$authorName = $author->appendChild($doc->createElement('author_name'));
$authorName->appendChild($doc->createTextNode('John Doe'));
$authorWiki = $author->appendChild($doc->createElement('author_wiki'));
$authorWiki->appendChild($doc->createTextNode('http://wikipedia....'));
$description = $book->appendChild($doc->createElement('description'));
$description->appendChild($doc->createTextNode('lorem ipsum blabla'));
echo $doc->saveXML();