正在处理 xml 个文件
Processing xml file
我有以下 xml 文件:
行类别="1" category_name="CatA" entry_id="1" entry_name="A1"
行类别="1" category_name="CatA" entry_id="2" entry_name="A2"
行类别="1" category_name="CatA" entry_id="3" entry_name="A3"
行类别="2" category_name="CatB" entry_id="4" entry_name="B1"
行类别="2" category_name="CatB" entry_id="5" entry_name="B2"
行类别="2" category_name="CatB" entry_id="6" entry_name="B3"
行类别="3" category_name="CatC" entry_id="7" entry_name="C1"
行类别="4" category_name="CatD" entry_id="8" entry_name="D1"
我想生成以下 html:
CatA
----A1
----A2
----A3
CatB
----B1
----B2
----B3
CatC
----C1
CatD
----D1
为此,我使用下面的 php xml 解析器:
$ndeshjet=simplexml_load_file("xml_file.xml");
$new_category = 1;
foreach ($ndeshjet->row as $entry) {
$category = $entry['category'];
if ($category <> $new_category){
$category_name = $entry['category_name'];
echo $category_name."</br>";
$new_category = $category;
} else {
$entry_name = $entry['entry_name'];
echo "----".$entry_name."</br>";
}
}
?></p>
<p>但结果是:</p>
----A1
- - A2
----A3
CatB
CatB
CatB
分类目录
分类目录
提前致谢
作为替代方案,您可以首先将所有值收集在一个数组中,然后将 category name
作为键将相同的键推送到数组中。完成并收集后,相应地打印它们:
$categories = array();
// gather inside container
foreach ($ndeshjet->row as $entry) {
$category_name = (string) $entry->attributes()->category_name;
$entry_name = (string) $entry->attributes()->entry_name;
$categories[$category_name][] = $entry_name;
}
// presentation
foreach($categories as $category_name => $entries) {
echo $category_name . '<br/>';
foreach($entries as $entry) {
echo '----' . $entry . '<br/>';
}
}
我有以下 xml 文件:
行类别="1" category_name="CatA" entry_id="1" entry_name="A1" 行类别="1" category_name="CatA" entry_id="2" entry_name="A2" 行类别="1" category_name="CatA" entry_id="3" entry_name="A3" 行类别="2" category_name="CatB" entry_id="4" entry_name="B1" 行类别="2" category_name="CatB" entry_id="5" entry_name="B2" 行类别="2" category_name="CatB" entry_id="6" entry_name="B3" 行类别="3" category_name="CatC" entry_id="7" entry_name="C1" 行类别="4" category_name="CatD" entry_id="8" entry_name="D1"
我想生成以下 html:
CatA
----A1
----A2
----A3
CatB
----B1
----B2
----B3
CatC
----C1
CatD
----D1
为此,我使用下面的 php xml 解析器:
$ndeshjet=simplexml_load_file("xml_file.xml"); $new_category = 1; foreach ($ndeshjet->row as $entry) { $category = $entry['category']; if ($category <> $new_category){ $category_name = $entry['category_name']; echo $category_name."</br>"; $new_category = $category; } else { $entry_name = $entry['entry_name']; echo "----".$entry_name."</br>"; } }
?>
</p> <p>但结果是:</p> ----A1 - - A2 ----A3 CatB CatB CatB 分类目录 分类目录
提前致谢
作为替代方案,您可以首先将所有值收集在一个数组中,然后将 category name
作为键将相同的键推送到数组中。完成并收集后,相应地打印它们:
$categories = array();
// gather inside container
foreach ($ndeshjet->row as $entry) {
$category_name = (string) $entry->attributes()->category_name;
$entry_name = (string) $entry->attributes()->entry_name;
$categories[$category_name][] = $entry_name;
}
// presentation
foreach($categories as $category_name => $entries) {
echo $category_name . '<br/>';
foreach($entries as $entry) {
echo '----' . $entry . '<br/>';
}
}