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>

この例では、3 つのチーム (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、子要素ではなく、すべての要素を選択しています。そのため、XPath 式の最後に追加するか'/column'、ネストされたループ ( foreach($list as $columns){ foreach($columns->column as $column) { ... } }) を含める必要があります。

属性 にもアクセスしようとしていますValueが、表示されている XML の属性は と呼ばれvalue、小文字の「v」が付いています。

于 2013-05-13T11:03:54.530 に答える