为了编写我的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文件均为here
我需要获取产品的名称(Каталог-&gt;Товары-&gt;Товар-&gt;Наименование),父类别的名称(Классификатор-&gt;Группы-&gt;Группа-&gt;Наименование)到它属于哪个子类别的名称(Классификатор-&gt;Группы-&gt;Группа-&gt;Группы-&gt;Группа-&gt;Наименование),即 结果证明:
товар (Каталог->Товары->Товар->Наименование)
его категория (Классификатор->Группы->Группа->Наименование)
его подкатегория (Классификатор->Группы->Группа->Группы->Группа->Наименование)
怎么做?
答案 0 :(得分: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";
}