Generated XML with PHP

J

Joel Witherspoon

I'm generating an xml file using PHP DOMXML . I'm able to create and
edit the file fine, however the formatting of my file is off. Instead
of being the standard xml:
<?xml version="1.0">
<root>
<element>
</element>
</root>

I am getting:
<?xml version="1.0">
<root>
<element></element></root>

Here is the code:

PHP:
$tdindex = time(); //creates unix time var for indexing
$doc = domxml_new_doc('1.0');
$root = $doc->add_root('categories');
$category = $doc->create_element('category');
$category = $root->append_child($category);

$category->set_attribute('index',$tdindex);
$cattext = $doc->create_text_node($cat);
$cattext = $category->append_child($cattext);
$description =
$doc->create_element('description');
$description =
$category->append_child($description);
$desctext = $doc->create_text_node($desc);
$desctext =
$description->append_child($desctext);



//create file if it doesn't exist and dump memory into it
$filename = realpath('categories.xml');
$doc->dump_file($filename, false, true);


Is there an method in DOMXML that formats the file? I thought
dump_file or dump_mem handled it.
Any help is appreciated.

__________________Joel
<<<<<<<<<<<<<<<<<<<<<<<
 
M

Martin Honnen

Joel said:
I'm generating an xml file using PHP DOMXML . I'm able to create and
edit the file fine, however the formatting of my file is off. Instead
of being the standard xml:
<?xml version="1.0">
<root>
<element>
</element>
</root>

I am getting:
<?xml version="1.0">
<root>
<element></element></root>

Here is the code:

PHP:
$tdindex = time(); //creates unix time var for indexing
$doc = domxml_new_doc('1.0');
$root = $doc->add_root('categories');

add_root is deprecated, consider using create_element and then append_child.
$category = $doc->create_element('category');
$category = $root->append_child($category);

$category->set_attribute('index',$tdindex);
$cattext = $doc->create_text_node($cat);
$cattext = $category->append_child($cattext);
$description =
$doc->create_element('description');
$description =
$category->append_child($description);
$desctext = $doc->create_text_node($desc);
$desctext =
$description->append_child($desctext);



//create file if it doesn't exist and dump memory into it
$filename = realpath('categories.xml');
$doc->dump_file($filename, false, true);


Is there an method in DOMXML that formats the file? I thought
dump_file or dump_mem handled it.


When I try the following with PHP 4.3.3 on Windows

<?php
$xmlDocument = domxml_new_doc('1.0');
$documentElement = $xmlDocument->create_element('gods');
$xmlDocument->append_child($documentElement);
$god = $xmlDocument->create_element('god');
$name = $xmlDocument->create_element('name');
$name->append_child($xmlDocument->create_text_node('Kibo'));
$god->append_child($name);
$documentElement->append_child($god);
$xmlDocument->dump_file('test20040411.xml', FALSE, TRUE);
?>
<p>
<a href="test20040411.xml">test XML file</a>
</p>

then the resulting file looks fine to me

<?xml version="1.0"?>
<gods>
<god>
<name>Kibo</name>
</god>
</gods>

What version of PHP are you using?
 
J

Joel Witherspoon

Martin Honnen said:
add_root is deprecated, consider using create_element and then append_child.



When I try the following with PHP 4.3.3 on Windows

<?php
$xmlDocument = domxml_new_doc('1.0');
$documentElement = $xmlDocument->create_element('gods');
$xmlDocument->append_child($documentElement);
$god = $xmlDocument->create_element('god');
$name = $xmlDocument->create_element('name');
$name->append_child($xmlDocument->create_text_node('Kibo'));
$god->append_child($name);
$documentElement->append_child($god);
$xmlDocument->dump_file('test20040411.xml', FALSE, TRUE);
?>
<p>
<a href="test20040411.xml">test XML file</a>
</p>

then the resulting file looks fine to me

<?xml version="1.0"?>
<gods>
<god>
<name>Kibo</name>
</god>
</gods>

What version of PHP are you using?

I'm using 4.3.2 on Win2K with Apache 2.0.47. Fixed it. The problem was
$doc->add_root();. Thanks for your time.
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

Forum statistics

Threads
473,770
Messages
2,569,583
Members
45,075
Latest member
MakersCBDBloodSupport

Latest Threads

Top