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_revision} 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; }