Невозможно пройти через XML-узлы в PHP - PullRequest
0 голосов
/ 01 октября 2018

У меня есть файл, где я храню комментарии.Имя файла: 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 on line 2

Предупреждение: simplexml_load_file (): в 192.168.0.1 / users / User8650 / index.php on line 2

Предупреждение: simplexml_load_file (): ^ in 192.168.0.1 / users / User8650 / index.php on line 2

Ошибка: Невозможно создать объект

Четвертый из-за оператора die().

Пример ошибочный или я где-то ошибаюсь?

1 Ответ

0 голосов
/ 01 октября 2018

В вашем XML-документе нет действительного корневого элемента .Это будет работать:

<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>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...