我有一个XML Feed,我正在从中检索数据。
我目前编写代码来查找ID,然后跳过它并显示所有其他结果。
XML代码在
之下 <?php
$html = "";
$url = "xml feed";
$xml = simplexml_load_file($url);
$idToFind = 1922;
for ($i = 0; $i < 300; $i++) {
$id = $xml->Agent[$i]->id;
if ($id == $idToFind)
continue;
{
$id = $xml->Agent[$i]->id;
$name = $xml->Agent[$i]->name;
$html .= "<h2>$name</h2><h3>$id</h3>";}
echo $html;
下面的当前PHP代码
{{1}}
&GT;
所以目前它找到ID 1922并将其排除,但我想排除多个IDS,即1922年,1845年,2110年等。
答案 0 :(得分:0)
要排除ID的数组怎么样?
然后检查id是否为&#34; inArray&#34;每次迭代。
<?php
$html = "";
$url = "xml feed";
$xml = simplexml_load_file($url);
$idsToFind = array(1922, 1845, 1234, 8347 ... ...);
for ($i = 0; $i < 300; $i++) {
$id = $xml->Agent[$i]->id;
if (in_array($id, $idsToFind))
continue;
{
$id = $xml->Agent[$i]->id;
$name = $xml->Agent[$i]->name;
$html .= "<h2>$name</h2><h3>$id</h3>";}
echo $html;
?>
答案 1 :(得分:0)
另一种方法是使用xpath查询来修改xml结果。
$str = "<Agents>
<Agent>
<id>1</id>
<description>a</description>
<name>a</name>
</Agent>
<Agent>
<id>2</id>
<description>b</description>
<name>b</name>
</Agent>
<Agent>
<id>3</id>
<description>c</description>
<name>c</name>
</Agent>
<Agent>
<id>4</id>
<description>d</description>
<name>d</name>
</Agent>
</Agents>";
$xml = simplexml_load_string($str);
$result = $xml->xpath('//Agent[not(id = 1 or id = 3)]');
echo "<pre>";
print_r($result);