2013-02-15 67 views
0

我試圖設置一個工作變量,我可以稍後在我的代碼中使用,我的url中有一個id引用外部數據饋送中的屬性。你可以看到XML的一個副本飼料HERE

的ID來在這樣的URL - /page.php?id=52115351

目前IM設置我的工作變的波紋管,的擊打它只是被設置爲「初審市場「,而不是針對那些在url中獲得相同id的實例。

$wh_odds = $wh_xml->response->williamhill->class->type->market->participant; 
    $wh_odds_attrib = $wh_odds->attributes(); 
    $wh_odds_attrib['name'];//name 

我將如何實現$_GET['id']這個塊,這樣它會從「市場」中的XML飼料正確的實例的參與使工作變$wh_odds_attrib['name']

+2

我知道這個問題的所有單詞,但他們使用它們的方式對我沒有任何意義。我不明白你在那裏試圖做什麼。如果您想通過ID獲取節點,請考慮使用XPath。這裏是一個教程:http://schlitt.info/opensource/blog/0704_xpath.html – Gordon 2013-02-15 14:14:02

回答

2

如果你使用SimpleXML你可以嘗試這樣的事:

$simpleXml = simplexml_load_file('test.xml'); 
$marketNode = $simpleXml->xpath("/oxip/response/williamhill/class/type/market[@id='{$_GET['id']}']"); 
$attributes = $marketNode[0]->participant->attributes(); 

echo $attributes['name']; 
+0

有了這個我還需要聲明這樣的mu xml文件嗎? - $ simplexml = simplexml_load_file('xml/wh_f1_feed.xml'); – sam 2013-02-15 15:06:13

+0

是的,是的,你做:) – akimsko 2013-02-15 15:10:36

+0

乾杯@skimsko,但它keeeps引起了一堆錯誤,警告:SimpleXMLElement :: xpath():無效的表達式(第二行)。警告:SimpleXMLElement :: xpath():xmlXPathEval:評估失敗(第2行)。致命錯誤:調用一個非對象的成員函數attributes()(第二行) – sam 2013-02-15 15:31:23

0

我不完全確定你正在嘗試做什麼,但你可以將$ _GET ['id']分配給你想要的任何東西,也就是$ id = $ _GET ['id']允許你使用它字符串操作(通過sprintf或其他)。

關於你正在嘗試做一些更多的信息,將有助於

+0

我重寫了這個問題,希望它更清楚 – sam 2013-02-15 14:27:17

+0

實際上我想從它的部分$ wh_odds_attrib ['name']從塊市場52115351 – sam 2013-02-15 14:55:24

+0

您正在使用XMLparser?通過ID獲取該節點應該非常簡單,就像@akimsko在其他答案中針對simpleXML所展示的那樣。您不需要$ _GET,因爲它只能捕獲在實際URL中傳遞的變量。 – 2013-02-15 14:56:40