首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >混淆simpleXML

混淆simpleXML
EN

Stack Overflow用户
提问于 2010-07-12 02:23:28
回答 2查看 107关注 0票数 1

我有一个xml文件:

代码语言:javascript
复制
<kemo>
<cities>
    <area>area1</area >
    <city>city1</city>
    <status>Lipsum1</status>
     </cities>
<cities>
    <area>area1</area >
    <city>city2</city>
    <status>Lipsum2</status>
</cities>
<cities>
    <area >area2</area >
    <city>city3</city>
    <status>Lipsum3</status>
</cities>
<cities>
    <area >area2</area >
    <city>city4</city>
    <status>Lipsum4</status>
    </cities>
<cities>
    <area >area2</area >
    <city>city5</city>
    <status>Lipsum5</status>
</cities>
</kemo> 

我可以使用simlpeXML遍历这个xml,但是我不想重复区域名称。我想要这样一棵树:

代码语言:javascript
复制
area1   city1
        city2

area2   city3
        city4
        city5

使用

代码语言:javascript
复制
$request_url = "xml.xml";
$xml = simplexml_load_file($request_url) or die("feed not loading");
foreach($xml->kemo as $value){
   echo '<li><span>'.$value->area.' '.$value->city.'</span></li>';
}

我重复了一遍区域。我怎样才能防止重生?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2010-07-12 02:32:03

这与SimpleXML无关。我的建议是-将整个XML加载到数组中,然后列出它。如果您首先将XML加载到数组中,您可以确保XML的列表不会再次被错误的区域顺序破坏,如area1、area2、area1。

代码语言:javascript
复制
$xml = simplexml_load_file('xml.xml') or die("feed not loading");
$data = array();
foreach($xml as $value) {
    $area = (string)$value->area;
    // $area needs to be a string when using as a array key
    $data[$area][] = $value->city;
}

然后使用$data

代码语言:javascript
复制
foreach ($data as $area_name => $cities) {
    print $area_name;
    foreach ($cities as $city) {
        print $city;
    }
}
票数 5
EN

Stack Overflow用户

发布于 2010-07-12 02:32:32

您可以对此进行手动检查:

代码语言:javascript
复制
$xml = simplexml_load_file($request_url) or die("feed not loading");
foreach($xml->kemo as $value){
   ($value->area == $prev_area) ? $area = "" : $area = $value_area && $prev_area = $area);
   echo '<li><span>'.$area.' '.$value->city.'</span></li>';
}

不知道这是否会编译,但您可能会有这样的想法:)

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3224173

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档