Я довольно новичок в PHP, но я пытаюсь разбираться в частях RSS-канал для рендера на HTML. Проблема заключается в том, что практически в каждом теге в корме есть приборная пример, и это делает его трудно иметь дело. Я попытался сделать что-то вроде $ Home -> {'pub-код'} -> {'ad-type'} и т. Д., Но это тоже не работает. То, что я так далеко, это следующее:

    foreach ( $topRSS->channel->item as $home ) 
         {$returnValue .= "<li><span class=\"Title\">".$home->pub-code->ad-type->account-name."</span><br><a class=\"Link\" href=\"#\">".$home->pub-code->ad-type->ad-content."</a></li>";
         $counter++;
         if ($counter > 4)
             break;
         }

Который представляет собой попытку перебора RSS-канала с элементами, которые выглядят так:

 <item>
  <pub-code>
    <ad-type>
      <cat-code>Jobs</cat-code>
      <class-code/>
      <ad-number>12345</ad-number>
      <ad-number>12345</ad-number>
      <start-date>03/14/2018</start-date>
      <image><image/>
      <account-number>12345</account-number>
      <account-name>GENE BROWN</account-name>
      <addr-1>12533 WALSINGHAM RD</addr-1>
      <addr-2/>
      <city>LARGO</city>
      <state>FL</state>
      <postal-code>33774</postal-code>
      <ad-content> Content</ad-content>
    </ad-type>
  </pub-code>
 </item>

Я уверен, что это простой синтаксис, но мне не удалось найти документацию на ней где угодно.

Любая помощь будет принята с благодарностью.

Благодарность!

-1
G. Smith 14 Мар 2018 в 22:38

1 ответ

Лучший ответ

В разделе базового использования SimpleXML:

Доступ к элементам в документе XML, содержащий символы, не разрешенные в соответствии с Конвенцией об именах PHP (например, дефис) могут быть достигнуты путем инкапсулирования имени элемента в скобках и апострофе.

Пример # 3 Получение <line>

<?php include 'example.php';

$movies = new SimpleXMLElement($xmlstr);

echo $movies->movie->{'great-lines'}->line; ?>

Это зависит от PHP's "Переменные" Функциональность.

0
John Ellmore 14 Мар 2018 в 22:44