2015-06-11 78 views
0

如何獲得連字節點的值?看起來你可以做其他事情,除了這個。如何通過PHP獲得連字符xml節點的值?

假設你有一些XML

<?xml version="1.0" encoding="UTF-8"?> 
<doesntmatter xmlns="http://www.demandware.com/xml/impex/catalog/2006-10-31"> 
    <list> 
     <one>one value</one> 
     <two-word>two word value</two-word> 
    </list> 
</doesntmatter> 

首先,加載文件。

$xml = simplexml_load_file('./file.xml'); 

非連

搶非連節點

$xml->{'list'}->{'one'}[0]; 

獲得的非連節點

$xml->{'list'}->one; // one value 
的價值

鄒海峯

搶節點

$xml->{'list'}->{'display-name'}[0]; 

得到節點的VAUE ???

你不能做到這一點:

$xml->{'list'}->two-word; // ERRORRRRRRRR 
$xml->{'list'}->{'two-word'}; // doesn't output anything. 

一旦你有一個節點,你如何得到該節點的值,而不是通過一個神奇的方法對應得到一個子節點的值到那個孩子節點?

+2

一些有趣的閱讀你:http://stackoverflow.com/a/10333200/3933332(PHP變量不能有連字符,因爲它是無效的,你必須使用捲曲語法) – Rizier123

+3

'$ xml-> list - > {'two-word'}' – VolenD

+0

我使用了大括號語法。我一定要提到,我知道這個問題。問題是,當我使用它時,我有節點,而不是節點的值。 – ahnbizcad

回答

1

您可以從給定XML得到節點值<two-word>

$twoWordValue = $xml->list->{'two-word'}->__toString(); 
echo $twoWordValue;