2016-09-09 108 views
1

好吧,我有一些問題,因爲我不能看我的XML的某些部分:無法訪問元素使用SimpleXML PHP

file.xml

<main> 
<a> 
    <b> 
    <c> 
     ok1 
    </c> 
    </b> 
    <b> 
    <c> 
     ok2 
    </c> 
    </b> 
</a> 
</main> 

我可以打開XML文件,但我不能看到'ok2'的價值,希望你能幫助我,謝謝。

file.php

$xml = simplexml_load_file($filename) or die("Error: Cannot create object"); 

我試着這樣:

$xml->{'a'}->{'b'}[1]->{'c'} // but cant see anything 

希望u能幫助,謝謝

+3

首先您的示例XML缺少'',第二次嘗試確實使用'的xpath()'或'做打印(字符串)$ XML-> A-> B [1] - >℃; // ok2' – JustOnUnderMillions

+0

dost的工作:我不知道該怎麼做 –

回答

3

你永遠不會關閉a,你是不是檢查c

嘗試:

$xml = new SimpleXmlElement('<main> 
<a> 
    <b> 
    <c> 
     ok1 
    </c> 
    </b> 
    <b> 
    <c> 
     ok2 
    </c> 
    </b> 
    </a> 
</main>'); 
echo $xml->{'a'}->{'b'}[1]->{'c'}; 

演示:https://eval.in/638971

如果你想攻陷乾淨使用trim

echo trim($xml->{'a'}->{'b'}[1]->{'c'}); 
+0

哦,它的關閉,我只是寫它不好 –

+2

@AlbertoAcuña提示:沒有'trim()'或'(string)'你仍然會得到一個SimpleXMLElement,試試看'var_export($ xml - > {'a'} - > {'b'} [1] - > {'c'});' – JustOnUnderMillions

+1

可以使用'$ xml - > {'a'} - > { ''b'} [1] - > {'c'} - > __ toString()'或'$ xml - > {'a'} - > {'b'} [1] - > {'c'} - >' asXML()'也是如此。 – chris85