由于PHP代码获取一个节点的文本部分:使用PHP简单的XML
$xml = <<<EOF
<articles>
<article>
This is a link
<link>Title</link>
with some text following it.
</article>
</articles>
EOF;
function traverse($xml) {
$result = "";
foreach($xml->children() as $x) {
if ($x->count()) {
$result .= traverse($x);
}
else {
$result .= $x;
}
}
return $result;
}
$parser = new SimpleXMLElement($xml);
traverse($parser);
我预期的功能遍历()返回:
This is a link Title with some text following it.
然而,它只返回:
Title
有没有办法使用simpleXML来获得预期的结果(显然是为了消费数据而不是仅仅使用r就像在这个简单的例子中一样)?
感谢, N.
这实际上产生了我期待的确切结果 - 实际上并没有解决遍历Xml文档的底层问题。 – Nikolaj 2011-02-27 16:28:35
您将无法使用SimpleXML“遍历”或迭代文本节点。或者至少,如果可能的话,它将被设计/不切实际。使用SimpleXML让东西变得更容易,然后将所选节点导入DOM,以访问不属于SimpleXML的功能。 – 2011-02-27 17:08:28
是的,确实如此。看来我必须学习那种困难的方式。 – Nikolaj 2011-02-27 17:17:11