2016-06-14 7 views
1

私はデータを取得しているXMLフィードを持っています。複数の値をXMLデータの結果から除外します

私は現在、IDを見つけてそれをスキップし、他のすべての結果を表示するコードを書いています。

XMLコードは、だから、ID 1922を見つけ、それを除外した瞬間に

<?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; 

?>

以下

<Agents> 
    <Agent> 
     <id></id> 
     <description></description> 
     <name></name> 
    </Agent> 
</Agents> 

現在のPHPコードを下回っているが、私は、複数の除外したいですIDS ie 1922、1845、2110など

答えて

0

idを除外する配列についてはどうですか?
それから、各イテレーションでidが "inArray"であるかどうかを確認してください。

<?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; 
?> 
+0

大変感謝しています。 – ds2018

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); 
関連する問題