2013-07-17 58 views
2

我有一個XML格式如下:訪問XML的第n個元素在PHP中使用SimpleXML

<?xml version="1.0"?> 
<root> 
    <foo id="1"> 
    <bar>text</bar> 
    </foo> 
    <foo id="2"> 
    <bar>text2</bar> 
    </foo> 
</root> 

我知道,在PHP中,你我都可以訪問加載的SimpleXML像這樣的XML文件的第n個元素:

$xml = simplexml_load_file('file.xml'); 
echo $xml->foo[2]->bar; 

但我需要從$_GET拉到一個變量來訪問一個元素,所以:

echo $xml->foo[$var]->bar; 

這似乎並不奏效,我非常感謝任何建議。謝謝!

+0

看起來很好。 '$ var'是什麼? – IMSoP

+0

一個整數。我通過它是這樣的: URL:「http://www.foo.com/bar.php?var=1」 – saphyr212

回答

1

看起來SimpleXML區別於數字和非數字數組偏移,與正常的PHP數組稍有不同,所以您需要首先將您的變量轉換爲整數。 (所有的查詢字符串輸入一個字符串,直到你告訴PHP並非如此。)

$var = intval($_GET['var']); 
echo $xml->foo[$var]->bar; 

這將會把字符串'1'到整數1,並且應該給你需要的結果。

+0

謝謝!這就是訣竅! – saphyr212

+0

@IMSop:新對我來說。感謝和+1! –

+0

@AmalMurali我不知道,直到我正在玩一個現場樣品,並認爲嘗試它。有一些像這樣的事情,其中​​SimpleXML無法完全模擬核心PHP功能的「深奧魔力」 - 另一個原因是'$ some_simple_xml_node * 1.0'對'int'做了隱式轉換,而不是'float',不像'$ some_string * 1.0'。 – IMSoP

相關問題