2014-09-10 122 views
-2

我想讀的PHP的XML,我想顯示但林不能夠顯示節點values.Following一些特定的子節點是我試着去閱讀閱讀在PHP的XML節點

<nns2:ApiDirectory xmlns:ns2="https://sourceurl.com/api> 
    <api:groups> 
     <entry> 
      <key>Affiliate</key> 
      <value> 
       <apilisting> 
        <entry> 
         <key>value</key> 
          <value> 
           <get>https://url1.com</get> 
          </value> 
        </entry> 
       </apilisting> 
      </value> 
     </entry> 
    </api> 
</ns2> 
我的XML格式

我想從上面的XML格式讀取節點。在xml文件中有大約10-12個像上面這樣的片段。所以我想讀取從所有片段獲取節點值並將它們放入數組中。

我在php中使用simplexmlelement讀取xml 請指導如何獲取所需的節點值 可以說我把整個xml放在名爲data的變量中,我已經在下面使用了。

$xml = new SimpleXMLElement($data); 

echo $xml->ns2->api:groups->entry->value->apilisting-entry->value->{get}; 
+0

分享您當前的代碼,所以我們可以看到錯誤所在,並節點(s)你想得到和存儲。 – Sugar 2014-09-10 08:19:31

+0

ki m發帖先生... – 2014-09-10 08:20:21

+0

請現在檢查先生... – 2014-09-10 08:24:23

回答

1

您的代碼中存在拼寫錯誤。

echo $xml->ns2->api:groups->entry->value->apilisting-entry->value->{get}; 

應該是:

echo $xml->ns2->api:groups->entry->value->apilisting->entry->value->{get}; 

注意->apilisting

並且要注意的的:組在XML實例命名空間。

+0

對於錯字,但仍然無法打印所需的node.is它是因爲節點處理冒號? – 2014-09-10 09:52:20

+0

''應該是''。此外,您的xml文檔中的命名空間必須被定義。 – Edd 2014-09-10 12:07:01

+0

當試圖在PHP語句中添加冒號到節點時出現語法錯誤,並且我從curl讀取api中的這個xml,以便xml在那裏擁有命名空間.. – 2014-09-10 13:13:53

0

使PHP知道你要強行給類型轉換的對象象下面這樣:

$array = (array) $xml->ns2->api:groups->entry->value->apilisting->entry->value->get; 

print_r($array); 

OUTPUT:

Array ([0] => 'https://url1.com')