2016-09-09 85 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