2011-03-24 47 views
0

我有一個XML文檔的價值觀,在這3條節點,每個節點文章包含: 標題 圖片 鏈接PHP的XML呼應包含在一個節點

我需要能夠拿到冠軍/圖像/將值鏈接到節點外。

$query = $xpath->query('//section/article'); 

foreach($query as $currentArticle => $artContents): 
print_r($artContents->title); 
endforeach 

; 這對我不起作用,我可以使用 - > NodeName和nodeValue,但它們不夠深入,只顯示'文章'或整個內容。

解釋得:

我的XML是

<article> 
<title>Title </title> 
<link>http:// </link> 
<img>image src </img> 
</article> 

,我需要輸出爲:

標題 - >標題

鏈結>的http://

更新說明:

foreach($query as $articles): 
foreach($articles->childNodes as $childNode) { 

    if ($childNode->nodeType === XML_ELEMENT_NODE) { 

        $stored = $childNode->nodeValue; 

        array_push($availAds, $stored);   

    } 
} 

endforeach;

是我現在要感謝戈登。這雖然讓我的數組是這樣的:

//previous values: 

     } 
    ["1300884672_071.jpg"]=> 
    array(3) { 
    ["image"]=> 
    string(30) "1300884672_071.jpg" 
    ["title"]=> 
    string(6) "secind title" 
    ["link"]=> 
    string(10) "grtgrtgrtg" 
    } 
    ["1300884618_071.jpg"]=> 
    array(3) { 
    ["image"]=> 
    string(30) "1300884618_071.jpg" 
    ["title"]=> 
    string(5) "first title" 
    ["link"]=> 
    string(10) "http://www.google.com" 
    } 

//updated values that 
    [0]=> 
    string(6) "My Title" 
    [1]=> 
    string(89) "/1300961550.jpg" 
    [2]=> 
    string(22) "rtherherhgerg thursada" 
    [3]=> 
    string(20) "custome 222222222222" 

我顯然需要我的數組是一致的,但不知道如何做到這一點。謝謝你的耐心。

鮑勃

回答

1

我仍然不知道是什麼問題,但你在找

foreach($query as $articles): 
    foreach($articles->childNodes as $childNode) { 
     if ($childNode->nodeType === XML_ELEMENT_NODE) { 
      printf("%s->%s%s", $childNode->nodeName, $childNode->nodeValue, PHP_EOL); 
     } 
    } 
} 

這將在迭代是返回$文章節點的直接孩子的所有節點一個DOMElement在查詢中以這種格式「nodename-> nodevalue」和一個換行符打印它們。

+0

嗨,謝謝,這就是我想要達到的目標,對於我可憐的解釋抱歉。這將輸出值,但我需要能夠引用每個值將它們放入一個數組中。所以我試圖得到:$ title = $ childNode-> title $ img = $ childNode-> img等,然後我可以放入正確的數組。謝謝。我用if語句對它進行了排序。 – BobFlemming 2011-03-24 14:12:29

相關問題