SimpleXML:使用值和其他节点解析节点

时间:2018-04-09 15:32:45

标签: php simplexml

在PHP中解析某些XML时遇到问题。节点包含节点值其他节点。有没有办法解析两者?

我通过API使用它,因此无法控制输出。

<?php
$xml = '<root>
    <foo>
        bar
        <foobar>Foobar</foobar>
    </foo>
</root>';

$data = new \SimpleXMLElement($xml);
var_dump($data);

将输出:

object(SimpleXMLElement)#3 (1) {
  ["foo"]=>
  string(11) "bar"
}

1 个答案:

答案 0 :(得分:1)

您只需要将数据值视为字符串,然后您可以将它们作为普通元素访问。

$data = new \SimpleXMLElement($xml);
echo "foo=".trim($data->foo).PHP_EOL;  // trim() to remove excess whitespace
echo "foo XML=".$data->foo->asXML().PHP_EOL;
echo "foobar=".(string)$data->foo->foobar;

将输出......

foo=bar
foo XML=<foo>
        bar
        <foobar>Foobar</foobar>
    </foo>
foobar=Foobar