0

我是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 值属性。

我尝试了许多不同的方法,使用 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;
    }

任何帮助都会非常感谢。

ps 这个网站很棒

4

1 回答 1

0

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

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

于 2013-05-13T11:03:54.530 回答