在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"
}
答案 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