appendChild(new DOMElement('biblio_collection')); $biblio_collection->setAttribute("Schema", "6010"); $comment = $biblio_collection->appendChild(new DOMComment('Generated by the Biblio module from Drupal (http://drupal.org/project/biblio)')); $db_result = db_query("SELECT nr.nid, nr.vid FROM node_revisions nr join node n on nr.nid=n.nid where n.type='biblio' order by nr.nid, nr.vid"); while($n=db_fetch_object($db_result)){ $node = node_load($n->nid,$n->vid); if($n->nid == $nid){ $revision = $domnode->appendChild(new DOMElement('revision')); $node = (array)$node; AtoX($node, $dom, $revision); }else{ $domnode = $biblio_collection->appendChild(new DOMElement('node')); $node = (array)$node; AtoX($node, $dom, $domnode); } $nid = $n->nid; } return $dom->saveXML(); } function AtoX($array, $DOM=null, $root=null){ foreach($array as $key => $value){ if ($key == 'biblio_contributors') $name = 'contributor'; if (is_numeric($key)) $key = 'c_'.$key; if(is_array($value ) && count($value)){ $subroot = $root->appendChild($DOM->createElement($key)); AtoX($value, $DOM, $subroot); } else { if(!empty($value)){ $root->appendChild($DOM->createElement($key, htmlspecialchars($value, ENT_QUOTES))); } } } return $DOM; }