我有我的xml文件
<names>
<person>
<name>John</name>
<alias>
<part>Joe</part>
<part>Foo</part>
</alias>
</person>
</names>
我保存为$xml
。
foreach($xml as $person)
var_dump($person->name);
上面的代码返回
object(SimpleXMLElement)#7 (1) {
[0]=>
string(4) "John"
}
而不仅仅是
string(4) "John"
根据它给出的实际回报,我会假设在变量的末尾添加[0]
会给我正确的回报,但它会返回完全相同的东西。我尝试添加[0]
,["0"]
,->0
,->"0"
,但没有任何效果。最后两次尝试给了我一个解析错误,而前两次尝试给了我与原始错误相同的响应。
如何从string(4) "John"
内获取object(SimpleXMLElement)
?
答案 0 :(得分:1)
那是因为XML是一种资源,即:
$xml = '<names>
<person>
<name>John</name>
<alias>
<part>Joe</part>
<part>Foo</part>
</alias>
</person>
</names>';
$parsed = simplexml_load_string($xml);
var_dump($parsed->getName());
输出names
,显示您所在的元素/图层名为names
。
解析后,&gt; person-&gt;名称会为您提供资源。如果要删除资源并只访问该值,则需要将其转换为字符串:
var_dump((string)$parsed->person->name);