2011-11-11 16 views
0

私はPHPのシンプルなXMLを使ってXMLファイルを読んでいます。 I各カテゴリノードをループして、選択されたカテゴリに応じて包含ノードデータを表示し、サブカテゴリを表示します。どういうわけか、カテゴリにサブカテゴリがないときを検出する必要があります。私が必要とするのは、おそらくparent_idノードのすべてを配列に取得し、cat_idが配列に含まれているかどうかを調べて、それに依存するものがあるかどうかを調べることです。php - simpleXML同じノードを配列に入れてください

$cat_xml = simplexml_load_file(XML_PATH.'categories/'. $clientID . '.xml'); 

      //get all the categories and go through each one 
      foreach($cat_xml as $cat){ 
       if (//WHAT GOES HERE??){ 
        //display if cat is top level or has been selected 
        if ($cat->parentID == $cat_parent_id){ 
         //check product isn't set to hidden 
         if ($cat->visible == 1){ 
          echo '<div class="catbox">'; 
           echo "<a href=\"index.php?pageID=$pageID&cat_parent_id=$cat->id&cat_name=$cat->Name\"> $cat->Name </a><br />"; 
          echo '</div>'; 
         } 
        } 
       } else { 
        echo '<p>There are no sub categories.</p>'; 
       } 
      } 

[編集]
XMLは以下の通りです、私は「PARENTID」の配列を取得する必要が

<categories> <category> <id>740073</id> <Name>Leetee Cat 1</Name> <parentID>0</parentID> <Description><![CDATA[Charlotte Balbier Weddinhg <em>dresses</em>,<strong> blah blah blah!!<br /> </strong>]]></Description> <imageURL>alice-charlotte-balbier-english-tea-party-collection-2011.jpg</imageURL> <sequence>0</sequence> <visible>1</visible> </category> 
+1

あなたがXMLのスニペットを表示し、あなたはそれから解析する必要が正確に何を明確にしてくださいXPathの –

+0

必要のようですね。 – Gordon

+0

Iveは元の質問にXMlを追加しました - ありがとう – LeeTee

答えて

1

XPathはの親IDが含まれているカテゴリを検索するために使用できる値現在のカテゴリ。

foreach($cat_xml as $cat) { 
    $cat_id = intval($cat->id); 
    // Find categories that call this one their parent 
    $child_cats = $cat_xml->xpath("/categories/category[parentID/text()={$cat_id}]"); 
    if (!empty($child_cats)){ 
     //display if cat is top level or has been selected 
     if ($cat->parentID == $cat_parent_id){ 
      // .... 
     } 
    } else { 
     echo '<p>There are no sub categories.</p>'; 
    } 
} 
関連する問題