-4

XMLを作成するために、次のコードを使用します。

$xml = simplexml_load_file('import.xml');
foreach($xml->Классификатор->Группы->Группа as $group)
echo $group->Наименование . '<br />' .
     $group->Ид . '<br />' .
     $group->Группы->Группа->Наименование . '<br />' .
     $group->Группы->Группа->Ид . '<br /><br />';
echo '<br /><br /><br /><br /><br /><br />';
foreach($xml->Каталог->Товары->Товар as $item)
echo $item->Наименование . '<br />' . $item->Ид . '<br /><br />';

すべてのXMLファイルはここにあります

製品の名前(Каталог->Товары->Товар->Наименование)、親カテゴリの名前(Классификатор->Группы->Группа->Наименоваカテゴリ(Классификатор->Группы->Группа->Группы->Группа->Наименование)、つまり、次のようになりました。

товар (Каталог->Товары->Товар->Наименование)
его категория (Классификатор->Группы->Группа->Наименование)
его подкатегория (Классификатор->Группы->Группа->Группы->Группа->Наименование)

どうやってするか?

4

1 に答える 1

0

キーとしてのグループIDとすべての必須値を含むハッシュ配列を収集する必要があります。そうすれば、IDでグループ名とプロパティを見つけるのが簡単になります。実例は次のとおりです。

$xml = simplexml_load_file('/tmp/1.xml');
$groups = array();
foreach($xml->Классификатор->Группы->Группа as $group) {
  $groups[ (string) $group->Ид] = array(
    "name" => (string) $group->Наименование,
  );
  foreach($group->Группы->Группа as $subgroup) {
    $groups[ (string) $subgroup->Ид] = array(
      "name" => (string) $subgroup->Наименование,
      "parent" => (string) $group->Наименование
    );
  }
}
foreach($xml->Каталог->Товары->Товар as $item) {
  $group = $groups[ (string) $item->Группы->Ид];
  echo $item->Наименование ."\n". 
       (isset($group["parent"]) ? $group["parent"]."\n" : "").
       $group["name"]."\n\n";
}
于 2012-11-18T10:08:46.073 に答える