首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在网页中显示分层xml数据

在网页中显示分层xml数据
EN

Stack Overflow用户
提问于 2013-10-21 03:07:11
回答 2查看 272关注 0票数 0
代码语言:javascript
复制
<Pathways species="homo sapiens">
<Pathway dbId="109581" displayName="Apoptosis">
 <Pathway dbId="109607" displayName="Extrinsic Pathway for Apoptosis">
  <Pathway dbId="73887" displayName="Death Receptor  Signalling">
    <Pathway dbId="75157" displayName="FasL/ CD95L signaling">
      <Reaction dbId="75244" displayName="FASL binds FAS Receptor" />
      <Reaction dbId="71050" displayName="Trimerization of the FASL:FAS receptor complex" />
      <Reaction dbId="83650" displayName="FasL:Fas binds FADD" />
      <Reaction dbId="83586" displayName="FASL:FAS Receptor Trimer:FADD complex binds pro-Caspase-8" />
      <Reaction dbId="141310" displayName="FASL:FAS Receptor Trimer:FADD complex binds pro-Caspase-10" />
    </Pathway>
  </Pathway>
</Pathway>
  </Pathway>
<Pathway dbId="109581" displayName="Signaling pathway">
</Pathway>
</Pathways>

任何知道如何在网站上显示它们的人就像一棵树:如下所示:

代码语言:javascript
复制
-Apoptosis
--Extrinsic Pathway for Apoptosis
---Death Receptor  Signalling
----FasL/ CD95L signaling
-----FASL...
-----Trimerizaiton of the FASL....
.  .
.  .
.  .
-Signaling pathway

我不知道这棵树有多深,但不要太深。谢谢。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-10-21 16:49:29

您可以使用SimpleXMLIterator,它确实支持标准的RecursiveIterator树遍历。

下面的示例确实输出了这个文本树,例如,它非常接近您在问题中概述的输出类型:

代码语言:javascript
复制
|-Pathway: Apoptosis
| \-Pathway: Extrinsic Pathway for Apoptosis
|   \-Pathway: Death Receptor  Signalling
|     \-Pathway: FasL/ CD95L signaling
|       |-Reaction: FASL binds FAS Receptor
|       |-Reaction: Trimerization of the FASL:FAS receptor complex
|       |-Reaction: FasL:Fas binds FADD
|       |-Reaction: FASL:FAS Receptor Trimer:FADD complex binds pro-Caspase-8
|       \-Reaction: FASL:FAS Receptor Trimer:FADD complex binds pro-Caspase-10
\-Pathway: Signaling pathway

下面是代码的摘录:

代码语言:javascript
复制
<?php
/**
 * Iterator Garden Example
 *
 * Display hierarchical xml data in web page
 *
 * @link http://stackoverflow.com/q/19485654/367456
 */

require __DIR__ . '/iterator_garden.php';

$file = __DIR__ . '/data.xml';
$xml  = file_get_contents($file);

$it  = new SimpleXMLIterator($xml);

$decor = new RecursiveDecoratingIterator($it, function($item) {
    return $item['displayName'] ?: $item['species'];
}, RecursiveDecoratingIterator::DECORATE_NODES);


$tree = new RecursiveTreeIterator($decor, RecursiveTreeIterator::BYPASS_CURRENT);

foreach($tree as $key => $item)
{
    echo $key, ': ', $item, "\n";
}

来自Iterator花园可在Github上使用的代码,这里使用的是RecursiveDecoratingIterator

票数 0
EN

Stack Overflow用户

发布于 2013-10-21 03:17:59

查找PHP的函数结构,您可以使用它将这样的文件拆分为包含适当键的数组。手册上有你需要的所有信息和例子。

或者,下面是一篇解释如何使用SimpleXML的文章.也很容易使用。

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

https://stackoverflow.com/questions/19485654

复制
相关文章

相似问题

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