Ответы пользователя по тегу XML
  • Экспорт данных из MySQL в XML файл сложной структуры?

    Evervess
    @Evervess
    Если без использования классов для работы с 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;
    Ответ написан
    1 комментарий
  • Как экспортировать данных из XML в базу данных MySQL?

    Evervess
    @Evervess
    С SimpleXML не работал никогда, но по общей логике должно быть так
    foreach($sxml->location->street as $street) {
            foreach($street->house as $house) { //Перебираем дома только на текущей улице
    	        $house_number = stripslashes($house->apartment->attributes()['number']);
                echo "<br>'$house_number'";
                $app_number = stripslashes($house->attributes()['number']);
                echo "_'$app_number'";
    	        $id = ($house->apartment->account->attributes()['id']);
                echo "_'$id'";
            }     
        }
    Ответ написан