Connecting Tech Pros Worldwide Forums | Help | Site Map

Generated XML with PHP

Joel Witherspoon
Guest
 
Posts: n/a
#1: Jul 20 '05
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.

__________________[color=blue][color=green][color=darkred]
>>>>>>>>>>>>>>>>>>>>>>>[/color][/color][/color]
Joel
<<<<<<<<<<<<<<<<<<<<<<<

Martin Honnen
Guest
 
Posts: n/a
#2: Jul 20 '05

re: Generated XML with PHP




Joel Witherspoon wrote:
[color=blue]
> 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');[/color]

add_root is deprecated, consider using create_element and then append_child.
[color=blue]
> $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.[/color]


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?
--

Martin Honnen
http://JavaScript.FAQTs.com/

Joel Witherspoon
Guest
 
Posts: n/a
#3: Jul 20 '05

re: Generated XML with PHP


Martin Honnen <mahotrash@yahoo.de> wrote in message news:<4079205a$1@olaf.komtel.net>...[color=blue]
> Joel Witherspoon wrote:
>[color=green]
> > 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');[/color]
>
> add_root is deprecated, consider using create_element and then append_child.
>[color=green]
> > $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.[/color]
>
>
> 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?[/color]

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.
Closed Thread