我试图单独解决这个问题,但已经过了好几周而且我无法解决这个问题......
我有一个像这样的XML:
<?xml version="1.0" encoding="UTF-8"?>
<clothes>
<clothe premium="no" id="1">
<list gender="0" style="11" name="Jacket"/>
<list gender="1" style="12" name="Jacket"/>
</clothe>
<clothe premium="yes" id="2">
<list gender="0" style="13" name="Pants"/>
<list gender="1" style="14" name="Pants"/>
</clothe>
</clothes>
我想读一下“衣服”的属性:'premium'和'id' 并在其下方的“列表”中显示属性:“性别”,“样式”和“名称”。
Obs:我做过的最好的事情就是让php读取第一个或最后一个“list”属性,然后我需要阅读“clothe”中的所有标签。
性别0 =男性 性别1 =女性
以下是我使用的示例,我需要帮助:
public function getClothes()
{
$clothes = array();
foreach( $this->element->getElementsByTagName('list') as $list)
{
$clothes[] = $list->getAttribute('gender');
$clothes[] = $list->getAttribute('style');
$clothes[] = $list->getAttribute('name');
}
return $clothes;
}
答案 0 :(得分:1)
DOM节点是树的成员,并且完全了解其父/子。所以...搜索clothe
元素:
$clothes = $this->element->getElementsByTagName('clothe');
foreach($clothes as $clothe) {
$premium = $clothe->getAttribute('premium');
$lists = $clothe->getElementsByTagName('list'); // get all `<list>` under the current node
foreach($lists as $list ) {
$gender = $list->getAttribute('gender');
...
}
}
一旦您获得了<clothe>
元素,请搜索其下方的所有<list>
。