我正在开发PHP 5.6.3
以下是$ xml包含XML内容的代码。
$xml = '<TOPTag><Order><doc DocumentName="Doc1">TEST1</doc><doc DocumentName="Doc2">TEST2</doc></Order></TOPTag>';
$stk = simplexml_load_string($xml);
foreach($stk->xpath('/TOPTag/Order/doc') as $doc)
{
echo "<pre>";
print_r($doc);
echo "</pre>";
}
我需要包含所有doc xpath的doc内容的所有数据。
实际上,上面代码的结果是下面没有第一个对象的doc内容。它只返回最后一个对象的doc内容。
SimpleXMLElement Object
(
[@attributes] => Array
(
[DocumentName] => Doc1
)
[0] => TEST1 <- NOT COMING in OUTPUT - PHP VERSION 5.6.3
)
SimpleXMLElement Object
(
[@attributes] => Array
(
[DocumentName] => Doc2
)
[0] => TEST2
)
我们需要获取所有对象的所有数据(文档内容)。
你能告诉我吗?
答案 0 :(得分:0)
我不是百分之百确定为什么你的for-each不起作用,但是看一下来自org/apache/commons/math4/optim/nonlinear/scalar/noderiv/
的例子:
while(list( , $node) = each($result)) {
echo '/a/b/c: ',$node,"\n";
}
并将其应用于您的代码:
$result = $stk->xpath('/TOPTag/Order/doc');
while(list( , $node) = each($result)) {
{
echo "<pre>";
print_r($node);
echo "</pre>";
}
或者,这可能也有效(未经测试):
foreach($stk->xpath('/TOPTag/Order/doc') as $doc)
{
echo "<pre>";
print_r($doc->asXML());
echo "</pre>";
}