这是我的XML文件:
<?xml version="1.0" encoding="utf-8"?>
<sets>
<set name="default">
<phpClass name="ArrayIterator" />
</set>
<set name="production" basedOn="default">
<phpVersion>
<min>5.3.0</min>
</phpVersion>
</set>
</sets>
我必须获取所有项目(设置)并从XML中分配默认(或其他)的phpClass,其中集合与basedOn
相关联。有更多的主要集合(使用diffarent名称设置)和许多使用basedOn的集合。这必须是在更多的网站上动态,我不知道所有的名字和basedOn-s,所以它将是动态脚本。
这就是我现在拥有的PHP(用于测试):
$this->xml = simplexml_load_file($file);
print_r($this->xml->xpath("//sets/set[contains(name, 'default')]"));
但我明白了:Array ( )
有什么想法吗?也许我不太清楚,所以当你不明白的时候问问。
答案 0 :(得分:3)
您正在尝试选择名称元素的集合,其中包含&#39;默认&#39;您需要使用@name
来选择属性:
$this->xml = simplexml_load_file($file);
print_r($this->xml->xpath("//sets/set[contains(@name, 'default')]"));
作为旁注,似乎没有必要使用contains
,当你有类似html类属性的地方,你有多个类时,通常使用set[@name='default']
,这里你只需使用{{1}}代替