我有一个用于存储评论的文件。文件名为 comments.xml :
<?xml version="1.0" encoding="utf-8"?>
<comment>
<user>User4251</user>
<date>02.10.2018</date>
<text>Comment body goes here</text>
</comment>
<comment>
<user>User8650</user>
<date>01.10.2018</date>
<text>Comment body goes here</text>
</comment>
要遍历XML树,我使用W3Schools中给出的示例(对参数进行了一些修改)。该代码包含在 index.php 中:
<?php
$xml = simplexml_load_file("comments.xml") or die("Error: Cannot create object");
foreach($xml -> children() as $comments) {
echo $comments -> user . ", ";
echo $comments -> date . ", ";
echo $comments -> text . "<br>";
}
?>
根据示例,我期望:
User4251, 02.10.2018, Comment body goes here
User8650, 02.10.2018, Comment body goes here
但是,我遇到了三个错误:
警告::simplexml_load_file():comments.xml:7:解析器错误: 192.168.0.1/users/User8650/index.php中文档末尾的额外内容第 2
行的strong>警告::simplexml_load_file():在 2
行的 192.168.0.1/users/User8650/index.php 中警告:: 192.168.0.1/users/User8650/index.php 中的^在 2
行中的^错误:无法创建对象
第四个是由于die()
语句引起的。
这个例子是错误的还是我在某个地方出错了?
答案 0 :(得分:5)
您的XML文档中没有有效的root element。这将起作用:
<root_example>
<comment>
<user>User4251</user>
<date>02.10.2018</date>
<text>Comment body goes here</text>
</comment>
<comment>
<user>User8650</user>
<date>01.10.2018</date>
<text>Comment body goes here</text>
</comment>
</root_example>