2013-07-10 40 views
-2

這是我有:PHP:XPATH - 寫在可變第一要素在1線

$namex = $xml->xpath("//a[@b=foo]/c"); 
$name = $namex[0]; 

echo $name; 

它的工作原理,作爲第一行創建一個數組,而第二行顯示的第一個條目。有沒有辦法將這兩條線結合起來以獲得預期結果?

+0

的可能重複的[PHP的SimpleXMLElement獲得第一元件在一行中(http://stackoverflow.com/questions/2815639/php-simplexmlelement-get-first-element-in-one-line) – hakre

+0

推薦閱讀:[解析函數結果的PHP語法](http://stackoverflow.com/q/742764/367456) – hakre

回答

1

您可以使用list

list($name) = $xml->xpath("//a[@b=foo]/c"); 
+0

很好的使用'list()',但他們仍然需要'echo'。所以不是真正的單線。 –

+0

對不起@JasonMcCreary沒有讓我自己清楚,'回聲'線是爲了測試。這是我正在尋找的! – user1952748

+0

@ user1952748,不用擔心。在那種情況下,+。 –

0

有沒有辦法將兩條線結合起來以獲得預期的結果?

是的,沒有...

PHP 5.4+:

echo $xml->xpath("//a[@b=foo]/c")[0]; // array dereferencing, yay! 

PHP < 5.4:

$names = $xml->xpath("//a[@b=foo]/c"); 
echo $names[0]; 
+0

謝謝!不幸的是,這是在PHP 5.3中運行:D – user1952748

+0

不用擔心。如果您需要其他值,您將不想使用數組解引用,因爲您必須重新運行此方法。 –