【发布时间】:2014-01-27 11:32:02
【问题描述】:
我有这个代码:
$xml = new SimpleXMLElement('<myxml></myxml>');
$xml->addChild('testNode attr="test Attribute"');
$node = $xml->addChild('erroNode attr="My Child node causes error -> expect >"');
//$node->addChild('nodeChild attr="node Child"');
header('Content-type: text/xml');
echo $xml->asXML();
exit();
我可以通过$xml 创建具有属性的子节点,但不能使用$node(孩子的孩子),为什么?我收到错误error on line 2 at column 66: expected '>'
从文档中它说 addChild 函数返回子的 SimpleXmlElement 。
通过取消注释注释行 $node->addChild('nodeChild attr="node Child"'); 来检查
此外,它仅在发送标头时发生,如果我评论标头并执行以下操作,我可以在页面源中看到正确的 xml:
$xml = new SimpleXMLElement('<myxml></myxml>');
$xml->addChild('testNode attr="test Attribute"');
$node = $xml->addChild('erroNode attr="My Child node causes error -> expect >"');
$node->addChild('nodeChild attr="node Child"');
//header('Content-type: text/xml');
echo $xml->asXML();
exit();
我的 PHP 版本是 5.4.9
【问题讨论】:
-
似乎正在处理sandbox.onlinephpfunctions.com,错误描述是什么?
-
什么是错误。我测试的这段代码非常适合我
-
可能你的错误在
My Child node causes error -> expect >,>是XML中的保留字符,这可能会导致麻烦。立即测试... -
属性也要加上
addAttribute()。 -
@JTeisseire,
$node不存在是什么意思?它被声明为上面的行......他要求的是孩子的孩子,而不是孩子。