PHP - 处理 RSS 中的破折号
PHP - Dealing with dashes in RSS
我是 PHP 的新手,但我正在尝试解析 RSS 提要的一部分以呈现给 HTML。问题是提要中的几乎每个标签都有破折号,这使得它很难处理。我尝试做类似 $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>
我确定这是一个简单的语法问题,但我无法在任何地方找到它的文档。
如有任何帮助,我们将不胜感激。
谢谢!
根据 basic usage section for SimpleXML:
Accessing elements within an XML document that contain characters not
permitted under PHP's naming convention (e.g. the hyphen) can be
accomplished by encapsulating the element name within braces and the
apostrophe.
Example #3 Getting <line>
<?php include 'example.php';
$movies = new SimpleXMLElement($xmlstr);
echo $movies->movie->{'great-lines'}->line; ?>
这依赖于 PHP 的 "variable variables" 功能。
我是 PHP 的新手,但我正在尝试解析 RSS 提要的一部分以呈现给 HTML。问题是提要中的几乎每个标签都有破折号,这使得它很难处理。我尝试做类似 $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>
我确定这是一个简单的语法问题,但我无法在任何地方找到它的文档。
如有任何帮助,我们将不胜感激。
谢谢!
根据 basic usage section for SimpleXML:
Accessing elements within an XML document that contain characters not permitted under PHP's naming convention (e.g. the hyphen) can be accomplished by encapsulating the element name within braces and the apostrophe.
Example #3 Getting
<line>
<?php include 'example.php'; $movies = new SimpleXMLElement($xmlstr); echo $movies->movie->{'great-lines'}->line; ?>
这依赖于 PHP 的 "variable variables" 功能。