使用simplexml从xml feed中回显属性

时间:2013-05-12 19:56:49

标签: php simplexml

我是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。这个网站太棒了

1 个答案:

答案 0 :(得分:0)

您的XPath正在选择所有columns元素,而不是他们的孩子。因此,您需要在XPath表达式的末尾添加'/column',或者使用嵌套循环(foreach($list as $columns){ foreach($columns->column as $column) { ... } })。

您还尝试访问属性Value,但您显示的XML中的属性称为value,小写为“v”。