2013-05-12 54 views
0

Im對於simpleXML來說是新的,所以如果這是一個非常簡單的問題,請原諒我,但是我一直在堅持它。來自使用simplexml的xml feed的回聲屬性

我有以下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; 
    } 

任何幫助將是非常感謝。

p.s.這個網站是真棒

+0

請發表完整的XML。不僅僅是'Export'元素 – hek2mgl 2013-05-12 20:06:22

+0

這就是完整的xml。它開始於 Mortage 2013-05-12 20:08:05

+0

使用' - >屬性()' – 2013-05-12 20:10:18

回答

0

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

您也試圖訪問屬性Value,但是您顯示的XML中的屬性名爲value,其小寫字母爲'v'。

+0

我做了更改,但仍然沒有運氣,是否可以使用noNamespaceSchemaLocation進行操作?其他的XML文件工作正常,但是這個需要在URL中的用戶名和密碼,它是唯一不工作的。 – Mortage 2013-05-13 20:53:01

+0

只是做了一個print_r,它告訴我IP訪問被拒絕,我會聯繫我的XML提供者。非常感謝 – Mortage 2013-05-13 21:11:06

0

您是否收到此錯誤:

錯誤在第1行:屬性的前綴「XSI」「的xsi:noNamespaceSchemaLocation」與「出口」未綁定的元素類型相關聯。

+0

這應該是一個評論而不是答案。 – IMSoP 2013-05-13 11:52:40

+0

是的,但我沒有足夠的聲譽評論:( – 2013-05-13 12:14:50

+0

啊,好吧,沒有意識到/記住它的工作就像那樣 – IMSoP 2013-05-13 12:26:40