Пасер xml

pehser

Новичок
нужно про паристь xml в формате yandex market
есть там строки категории с ID
Код:
<categories>
  <category id="3">Спутниковые аксессуары</category>
  <category id="14">Спутниковые комплекты</category>
\  <category id="10">Сетевые фильтры   </category>
  <category id="13">Спутниковые ресиверы   </category>
  <category id="21">Медиаплееры</category>
  <category id="24">Установка и ремонт</category>
</categories>
[categories] => SimpleXMLElement Object
(
[category] => Array
(
[0] =>
Спутниковые аксессуары

[1] =>
Спутниковые комплекты

[2] =>
Сетевые фильтры

[3] =>
Спутниковые ресиверы

[4] =>
Медиаплееры

[5] =>
Установка и ремонт

)

)
simplexml_load_file данные выдает . а параметр ID теряем подскажите как оставить и значение и ID
 

vasinsky

Новичок
а вы виде файла подставляете данные - или в виде строки полученной от маркета?
 

vasinsky

Новичок
жевать надо всегда, и постоянно
я просто под цитатой эту
simplexml_load_file данные выдает . а параметр ID теряем подскажите как оставить и значение и ID
строку не заметил
 

pehser

Новичок
ну я на результат смотрю так
Код:
$yml = simplexml_load_file($url);      //Интерпретирует XML-файл в объект
echo "<pre>";
print_r($yml);
echo "</pre>";
от сюда и делаю выводы
 

AmdY

Пью пиво
Команда форума
как я и предполагал
вам нужно получить этот xml в виде строки
PHP:
$xml = file_get_contents($url);
а далее
http://php.net/manual/ru/function.simplexml-load-string.php

а потом уж и смотрите что распарсили
PHP:
echo "<pre>" . print_r($yml,1) . "</pre>";
ЗАЧЕМ? У него уже всё распарсилось, это видно в его же посте, но он делает ошибку, как и ты, глядя на print_r, вместо того чтобы проитерировать и вызывать attributes
 

vasinsky

Новичок
там не путь к файлу прописан, а видно же переменная $url
как ты думаешь - что в ней? адрес к xml или путь к файлу?
 

riff

Новичок
Прочитать мануал - это для лохов.
Проверить самому - фтопку.
Спорить и спорить не обращая внимание ни на доводы ни на авторитеты...
 

AmdY

Пью пиво
Команда форума
Я не гадаю, видно же что он всё правильно достал, только до аттрибутов не допёр
 

pehser

Новичок
блин чтото я видать туплю
Код:
$url = 'http://legosp.net/text.xml';
$xml = file_get_contents($url);
$yml = simplexml_load_string($xml);
как теперь и ID и значение получить?
 

AmdY

Пью пиво
Команда форума
как я писал выше, пройти по ссылке, там есть примеры, так что сообразите. Мы здесь код не подаём, а только показываем верное направление.
 

AmdY

Пью пиво
Команда форума
Ну, если биться головой о стену, то ничего точно не получится, кроме сотрясения. Головой думать надо, там же почти готовый код есть
PHP:
$xml = simplexml_load_file("file.xml");
foreach($xml->children() as $child) {
   
        $role = $child->attributes(); // ид где-то здесь
}
 

pehser

Новичок
ладно раз тока напраления значит направления, согласно вам напровляениям
Код:
$url = 'http://legosp.net/text.xml';
$xml = file_get_contents($url);
$yml = simplexml_load_string($xml);
foreach($yml as $a => $b) {
  print_r($b->attributes());
}
в результате
SimpleXMLElement Object ( )
 

vasinsky

Новичок
лан, видно же старается, вот те примитивный пример
PHP:
$url = 'http://legosp.net/text.xml';
$xml = file_get_contents($url);
$sxml = new SimpleXMLElement($xml);

foreach($sxml->categories->category as $k=>$v){
    var_dump($v->attributes());
}
 
  • Like
Реакции: AmdY

pehser

Новичок
большое спасибо почти сам дошол до решения, но меня почему то зациклило на $sxml->categories (без ->category)
видать усталость сказывается
 
Сверху