function readDatabase($filename) { // read the xml database of aminoacids $data = implode("", file($filename)); $parser = xml_parser_create(); xml_parser_set_option($parser, XML_OPTION_CASE_FOLDING, 0); xml_parser_set_option($parser, XML_OPTION_SKIP_WHITE, 1); xml_parse_into_struct($parser, $data, $values, $tags); xml_parser_free($parser); // loop through the structures foreach ($tags as $key => $val) { if ($key == "molecule") { $molranges = $val; // each contiguous pair of array entries are the // lower and upper range for each molecule definition for ($i = 0; $i < count($molranges); $i += 2) { $offset = $molranges[$i] + 1; $len = $molranges[$i + 1] - $offset; $tdb[] = parseMol(array_slice($values, $offset, $len)); } } else { continue; } } return $tdb; }
function XMLtoArray($values, $tags, $item, $parsetype = 0) { foreach ($tags as $key => $val) { if ($key == $item) { $molranges = $val; $offset = $molranges[0]; $len = $molranges[1] - $offset; $data = parseMol(array_slice($values, $offset, $len), $parsetype); } } return $data; }