Если без использования классов для работы с XML, то примерно так:
$query = mysql_query("SELECT * FROM `$table` SORT BY street, house_number, app_number ");
// Затем в цикле разбираем запрос, и формируем XML
$xml = '<?xml version="1.0" encoding="utf-8"?>' . PHP_EOL;
$prev_street = null;
$prev_house = null;
$prev_app = null;
$prev_acc = null;
while ($row = mysql_fetch_array($query)) {
if ($prev_acc != null && $row['account'] != $prev_acc) {
$xml .= '</account>' . PHP_EOL;
}
if ($prev_app != null && $row['app_number'] != $prev_app) {
$xml .= '</apartment>' . PHP_EOL;
}
if ($prev_house != null && $row['house_number'] != $prev_house) {
$xml .= '</house>' . PHP_EOL;
}
if ($prev_street != null && $row['street'] != $prev_street) {
$xml .= '</street>' . PHP_EOL;
}
if ($row['street'] != $prev_street) {
$xml .= '<street name="' . $row['street'] . '">' . PHP_EOL;
$prev_street = $row['street'];
}
if ($row['house_number'] != $prev_house) {
$xml .= '<house number="' . $row['house_number'] . '">' . PHP_EOL;
$prev_house = $row['house_number'];
}
if ($row['app_number'] != $prev_app) {
$xml .= '<apartment number="' . $row['app_number'] . '">' . PHP_EOL;
$prev_app = $row['app_number'];
}
if ($row['account'] != $prev_acc) {
$xml .= '<account id="' . $row['account'] . '" person="">' . PHP_EOL;
$prev_acc = $row['account'];
}
$xml .= '<device id="' . $row['device_id'] . '" value="' . $row['new_meterage'] . '" date="дата" type="1"/>' . PHP_EOL;
}
$xml .= '</account>' . PHP_EOL . '</apartment>' . PHP_EOL . '</house>' . PHP_EOL . '</street>';
echo $xml;