似乎无法从simpleXMLobject

时间:2016-05-30 13:32:19

标签: php xml object

我有我的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)

1 个答案:

答案 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);