我是simpleXML的新手,请原谅我这是一个非常简单的问题,但过去我一直坚持下去。
我有以下xml结构
<Export xsi:noNamespaceSchemaLocation="Random">
<GeneralInformation></GeneralInformation>
<Sport code="SOC" id="1" name="SOCCER">
<Table leagueCode="22718">
<labels></labels>
<labels></labels>
+<Team groupId="" id="2427"></Team>
<Team groupId="" id="11676">
<columns>
<column labelId="p" value="2"/>
<column labelId="tn" value="MANCHESTER CITY"/>
<column labelId="1" value="36"/>
<column labelId="2" value="22"/>
<column labelId="3" value="9"/>
<column labelId="4" value="5"/>
<column labelId="5" value="62"/>
<column labelId="6" value="31"/>
<column labelId="7" value="14"/>
<column labelId="8" value="3"/>
<column labelId="9" value="1"/>
<column labelId="10" value="39"/>
<column labelId="11" value="12"/>
<column labelId="12" value="8"/>
<column labelId="13" value="6"/>
<column labelId="14" value="4"/>
<column labelId="15" value="23"/>
<column labelId="16" value="19"/>
<column labelId="17" value="31"/>
<column labelId="18" value="0"/>
<column labelId="19" value="75"/>
<column labelId="st" value="Ch.Lg"/>\
</columns>
</Team>
+<Team groupId="" id="2420"></Team>
</Table>
</Sport>
</Export>
在这个例子中有三个团队(id = 2427,11676,2420)。
我想回应每个团队的20 Value属性。
我尝试了许多不同的方法,使用xpath,但我似乎无法回应任何东西。我的最新代码是这样的
$xml= simplexml_load_file("$url") or die ("error: cannot creat object");
$list=$xml->xpath('/Export/Sport/Table/Team/columns');
foreach($list as $column){
$value = $column['value'];
echo $value;
}
任何帮助都会非常感谢。
P.S。这个网站太棒了
答案 0 :(得分:0)
您的XPath正在选择所有columns
元素,而不是他们的孩子。因此,您需要在XPath表达式的末尾添加'/column'
,或者使用嵌套循环(foreach($list as $columns){ foreach($columns->column as $column) { ... } }
)。
您还尝试访问属性Value
,但您显示的XML中的属性称为value
,小写为“v”。