Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: как парсить xml своими силами?

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (1): [1]   

> Без описания
CTAPbIu_KODEP
Отправлено: 27 Апреля, 2011 - 11:37:22
Post Id



Новичок


Покинул форум
Сообщений всего: 47
Дата рег-ции: Февр. 2011  
Откуда: Джанкой, Украина


Помог: 0 раз(а)




т.е без библиотек парсеров(simpleXml, SAX...)
 
 Top
DeepVarvar Супермодератор
Отправлено: 27 Апреля, 2011 - 11:59:36
Post Id



Активный участник


Покинул форум
Сообщений всего: 10377
Дата рег-ции: Дек. 2008  
Откуда: Альфа Центавра


Помог: 353 раз(а)




Например так:
PHP:
скопировать код в буфер обмена
  1. <?
  2.  
  3. class xmlmap {
  4.         var $connect;
  5.         var $module_id=-1;
  6.         var $module;
  7.         function spets($connect) {
  8.                 $this->connect = $connect;
  9.                 global $module;
  10.                 $this->module = $module;                       
  11.                 }
  12.         function AdminLink() {
  13.                 return 'flash-xml Карта';
  14.                 }
  15.        
  16.         // Это админская часть
  17.         function Admin() {
  18.                 $t = array("продан","в продаже","зарезервирован");
  19.                 $xmldata = $_SERVER['DOCUMENT_ROOT']."/swf/data1.xml";
  20.                 $putxml = file($xmldata);
  21.                 $savemap = false;
  22.                 $newmap = array();
  23.                 $write = "";
  24.                 foreach ($putxml as $pk => $pfield) {
  25.                         $pf = "save$pk";
  26.                         $newmap[$pk] = trim($pfield);
  27.                         if (isset($_POST[$pf])) {
  28.                                 $savemap = true;
  29.                                 $pstate = "state$pk";
  30.                                 $parea = "area$pk";
  31.                                 $pprice = "price$pk";
  32.                                 if (!isset($_POST[$pstate]) or $_POST[$pstate] == "") $savemap = false;
  33.                                 if (!isset($_POST[$parea]) or $_POST[$parea] == "") $savemap = false;
  34.                                 if (!isset($_POST[$pprice]) or $_POST[$pprice] == "") $savemap = false;
  35.                                 if ($savemap) {
  36.                                         $state = (int) ($_POST[$pstate]);
  37.                                         if ($state < 0 or $state > 2) $state = 0;
  38.                                         $statetext = $t[$state];
  39.                                         $newmap[$pk] = "<region state=\"$state\" area=\"$_POST[$parea]\" price=\"$_POST[$pprice]\" statetext=\"$statetext\"> </region>";
  40.                                         }
  41.                                 }
  42.                         }
  43.  
  44.                 if ($savemap) {
  45.                         foreach ($newmap as $nfield) $write .= "$nfield\n";
  46.                         $fw = fopen($xmldata,"wb");
  47.                         flock($fw,LOCK_EX);
  48.                         fwrite($fw,$write);
  49.                         fflush($fw);
  50.                         flock($fw,LOCK_UN);
  51.                         fclose($fw);
  52.                         echo "<center><h1>Изменения сохранены..</h1></center>";
  53.                         die();
  54.                         }
  55.  
  56.                 $getxml = file($xmldata);
  57.                 $view_arr = array();
  58.  
  59.                 foreach ($getxml as $k => $str) {
  60.                         $view_arr[$k]['num'] = $k;
  61.                         if (preg_match("#^<region state=\"(.*)\" area=\"(.*)\" price=\"(.*)\" statetext=\"(.*)\"> </region>$#iu",trim($str),$matches)) {
  62.                                 $view_arr[$k]['state'] = $matches[1];
  63.                                 $view_arr[$k]['area'] = $matches[2];
  64.                                 $view_arr[$k]['price'] = $matches[3];
  65.                                 $view_arr[$k]['statetext'] = $matches[4];
  66.                                 }
  67.                         else $view_arr[$k]['error'] = "ошибка разбора данных участка №<b>$k</b>";
  68.                         }
  69.  
  70.                 ?>
  71.                 <style>
  72.                 #mapform * {
  73.                 font-size: 10px;
  74.                 }
  75.                 #mapform table, #mapform td {
  76.                         text-align: center;
  77.                         border: solid 1px #dedede;
  78.                 }
  79.                 </style>
  80.                 <div id="mapform">
  81.                 <table cellspacing="1" cellpadding="2" width="90%">
  82.                 <?PHP if (count($view_arr) > 0) {
  83.                         $num = 0;
  84.                         foreach ($view_arr as $ik => $item) {
  85.                         if ($ik > 2 and $ik < count($view_arr)-1) {
  86.                                 $num++;
  87.                                 if (!isset($item['error'])) { ?>
  88.                                 <form action="........." method="post">
  89.                                         <tr>
  90.                                                 <td>Участок № <?=$num?>
  91.                                                         <input type="hidden" name="save<?=$item['num']?>" value="<?=$item['num']?>" />
  92.                                                 </td>
  93.                                                 <td>Состояние:
  94.                                                         <select name="state<?=$item['num']?>">
  95.                                                                 <?PHP foreach ($t as $i => $v) { ?>
  96.                                                                 <option value="<?=$i?>"<?PHP if ($i == $item['state']) echo " selected"; ?>> <?=$v?> </option>
  97.                                                                 <?PHP } ?>
  98.                                                         </select>
  99.                                                 </td>
  100.                                                 <td>Площадь: <input type="text" name="area<?=$item['num']?>" value="<?=$item['area']?>" /></td>
  101.                                                 <td>Стоимость: <input type="text" name="price<?=$item['num']?>" value="<?=$item['price']?>" /></td>
  102.                                                 <td><input type="submit" value=" Сохранить " /></td>
  103.                                         </tr>
  104.                                 </form>
  105.                         <?PHP } else { ?>
  106.                                         <tr>
  107.                                                 <td colspan="5" align="center"><?=$item['error']?></td>
  108.                                         </tr>
  109.                 <?PHP } } } } else { ?> <tr><td><h2>Список пуст</h2></td></tr> <?PHP } ?>
  110.                 </table>
  111.                 </div>
  112. <?              }
  113.         //======================================================================================
  114.         //NO USE FOR USERS
  115.         //======================================================================================       
  116.         function User() { }
  117.         }
  118.  
  119. ?>
 
 Top
Stierus Супермодератор
Отправлено: 27 Апреля, 2011 - 12:41:28
Post Id



Рекордсмен по количеству сообщений за 7 дней


Покинул форум
Сообщений всего: 2132
Дата рег-ции: Дек. 2008  
Откуда: Москваль


Помог: 52 раз(а)




своими сиами - это как? тот же SimpleXML, dom и xmlPаrser идут в стандартной поставке php5. Если чистый php без библиотек - то у тебя и БД и utf-8 и дофига чего еще отвалится, так что ограничь список библиотек, которые нельзя использовать что ли Улыбка
 
My status
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« XML и его обработка »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB