SimpleXML:解析具有值的节点和其他节点
SimpleXML: Parsing nodes with value and other nodes
从 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"
}
您只需要将数据值视为字符串,就可以像普通元素一样访问它们。
$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
从 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"
}
您只需要将数据值视为字符串,就可以像普通元素一样访问它们。
$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