Hi, Thursday, July 10, 2003, 6:44:55 AM, you wrote: MG> Tom:
MG> Thanks for the help. Using the array setup you described, I end up with the MG> value of each "record" node being appended to a single instance of the MG> parent node. And that single instance of the parent node is the final one MG> that was parsed (the attributes verify this). The example I used below is MG> outputting this: MG> <rootElement> MG> <record id="2">Value 1Value 2</record> MG> </rootElement> MG> Any ideas? It seems we now have to clone nodes before using them. (php-4.3 +) I did this as a test: $test =array( 1=>array('type'=>'record','value'=>'Value 1','id'=>1), 2=>array('type'=>'record','value'=>'Value 2','id'=>2)); $elements = array(); $doc = domxml_new_doc("1.0"); //create a dummy document ob_start(); echo <<<END <rootelement> </rootelement> END; $buffer = ob_get_contents(); ob_end_clean(); $doc = domxml_open_mem($buffer); //get the root element $ancestor = $doc->document_element(); //loop foreach($test as $val){ $key = $val['type']; $value = $val['value']; $id = $val['id']; if(!isset($elements[$key])){ $elements[$key] = $doc->create_element($key); } $thisChild = $ancestor->append_child($elements[$key]->clone_node());//<<<<clone $thisChild->set_attribute('id',$id); $txt = $doc->create_text_node($value); $thisChild->append_child($txt); } //end loop echo '<pre>'; echo htmlentities($doc->dump_mem(true)); echo '</pre>'; Gave me <?xml version="1.0"?> <rootelement> <record id="1">Value 1</record><record id="2">Value 2</record></rootelement> -- regards, Tom -- PHP General Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php