PHP - 处理RSS中的破折号

时间:2018-03-14 19:38:44

标签: php xml syntax rss escaping

我对PHP很新,但我正在尝试解析部分RSS提要以呈现为HTML。问题在于,Feed中的每个标签都有一个短划线,这使得很难处理。我尝试过像$ home-> {'pub-code'} - > {'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 个答案:

答案 0 :(得分:0)

根据basic usage section for SimpleXML

  

访问包含非字符的XML文档中的元素   允许根据PHP的命名约定(例如连字符)   通过将元素名称封装在大括号和   撇号。

     

示例#3获取<line>

<?php include 'example.php';

$movies = new SimpleXMLElement($xmlstr);

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

这取决于PHP的"variable variables"功能。