Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
Самоучитель PHP 5 / 6 (3 издание). Авторы: Кузнецов М.В., Симдянов И.В. Программирование. Ступени успешной карьеры. Авторы: Кузнецов М.В., Симдянов И.В. PHP Puzzles. Авторы: Кузнецов М.В., Симдянов И.В. Социальная инженерия и социальные хакеры. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель MySQL 5. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум Регулярные Выражения

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Извлечь информацию из XML-файла
 
 автор: User BT   (09.06.2006 в 10:51)
 
 

Здравствуйте, подскажите, как получить данный из http://kovcheg.apeha.ru/inform/lavka.xml ?
(пример: http://kovcheg.apeha.ru/inform/lavka.xml )
Формат данных:
lavka.xml
<root>
<items>
<item cnt="696" name="Щит учебный" price="4.32"/>
<item cnt="Много" name="Щит не учебный" price="4.32"/>
<item cnt="<количество>" name="<наименование товара>" price="<цена>"/>
</items>
</root>

   
 
 автор: cheops   (09.06.2006 в 12:32)   письмо автору
 
   для: User BT   (09.06.2006 в 10:51)
 

Можно воспользоваться регулярными выражениями
<?php
  $content 
file_get_contents("http://kovcheg.apeha.ru/inform/lavka.xml");
  
$pattern "#<item[\s]+cnt=\"([^\"]+)\"[\s]+name=\"([^\"]+)\"[\s]+price=\"([^\"]+)\"#isU";
  
preg_match_all($pattern$content$out);
  unset(
$out[0]);
  echo 
"<pre>";
  
print_r($out); 
  echo 
"</pre>";
?>

   
 
 автор: User BT   (09.06.2006 в 13:23)
 
   для: cheops   (09.06.2006 в 12:32)
 

Спасибо, а как теперь по ячейкам всё разбить?)

   
 
 автор: User BT   (09.06.2006 в 14:54)
 
   для: User BT   (09.06.2006 в 13:23)
 

Можно как-нибудь строки разбить на три переменных?
Например
<item cnt="Много" name="Щит не учебный" price="4.32"/>
$cnt[0]=Много $name[0]=Щит не учебный $price[0]=4.32
<item cnt="145" name="кольцо злости" price="8.55"/>
$cnt[55]=Много $name[55]=Щит не учебный $price[55]=4.32
что-нибудь типа такого можно сделать?

   
 
 автор: User BT   (09.06.2006 в 14:56)
 
   для: User BT   (09.06.2006 в 14:54)
 

опечатка
<item cnt="145" name="кольцо злости" price="8.55"/>
$cnt[55]=145 $name[55]=кольцо злости $price[55]=8.55

   
 
 автор: xexe   (09.06.2006 в 16:09)   письмо автору
 
   для: User BT   (09.06.2006 в 13:23)
 


Всмысле вывести ввиде таблички?
<?php 
  $content 
file_get_contents("http://kovcheg.apeha.ru/inform/lavka.xml"); 
  
$pattern "#<item[\s]+cnt=\"([^\"]+)\"[\s]+name=\"([^\"]+)\"[\s]+price=\"([^\"]+)\"#isU"
  
preg_match_all($pattern$content$out);
  echo 
"<table width=\"100%\" border=\"1\" cellspacing=\"0\" cellpadding=\"0\">
            <tr>
                <td><b>наименование товара</b></td>
                <td><b>количество</b></td>
                <td><b>цена</b></td>
            </tr>"
;  
    for (
$i=0$icount($out[0]); $i++){
        echo 
"<tr>
                <td>"
.$out[2][$i]."</td>
                <td>"
.$out[1][$i]."</td>
                <td>"
.$out[3][$i]."</td>
             </tr>
              "
;
    }
?>

   
 
 автор: User BT   (09.06.2006 в 16:44)
 
   для: xexe   (09.06.2006 в 16:09)
 

Спасибо!

   
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования