SIMPLEXML в foreach

Почему не выводит все "COMMENT" с помощью foreach, а только первое?

<?php
header('Content-Type: text/html; charset=utf-8');

$xml = simplexml_load_file('students.xml');

foreach ($xml as $xmlstr) {
    echo $xmlstr->TABLE['COMMENT'] ."<br /><hr />";
}
?>


<?xml version="1.0" encoding="UTF-8" ?>
<XMLDB PATH="mod/newmodule/db" VERSION="20140406" COMMENT="XMLDB file for Moodle mod/studentcabinet"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:noNamespaceSchemaLocation="../../../lib/xmldb/xmldb.xsd"
>
  <TABLES>
    <TABLE NAME="student" COMMENT="таблица, содержащая сведения (идентификационный номер пользователя, его имя и фамилию, логин и пароль, время создания учетной записи и т.д.) о пользователях, зарегистрированных на сайте центра дистанционного обучения.">
      <FIELDS>
        <FIELD NAME="id" TYPE="int" LENGTH="10" NOTNULL="true" SEQUENCE="true"/>
        <FIELD NAME="firstname" TYPE="char" LENGTH="20" NOTNULL="true" SEQUENCE="false" COMMENT="Имя пользователя"/>
        <FIELD NAME="lastname" TYPE="char" LENGTH="20" NOTNULL="true" SEQUENCE="false" COMMENT="Фамилия пользователя"/>
        <FIELD NAME="login" TYPE="int" LENGTH="20" NOTNULL="true" SEQUENCE="false" COMMENT="Логин пользователя"/>
        <FIELD NAME="password" TYPE="int" LENGTH="19" NOTNULL="true" SEQUENCE="false" COMMENT="Пароль ползователя"/>
      </FIELDS>
      <KEYS>
        <KEY NAME="primary" TYPE="primary" FIELDS="id"/>
      </KEYS>
    </TABLE>
    <TABLE NAME="course" COMMENT="таблица, содержащая список созданных курсов на сайте центра дистанционного обучения.">
      <FIELDS>
        <FIELD NAME="id" TYPE="int" LENGTH="10" NOTNULL="true" SEQUENCE="true"/>
        <FIELD NAME="fullname" TYPE="char" LENGTH="20" NOTNULL="false" SEQUENCE="false"/>
        <FIELD NAME="time_create" TYPE="int" LENGTH="20" NOTNULL="false" SEQUENCE="false"/>
      </FIELDS>
      <KEYS>
        <KEY NAME="primary" TYPE="primary" FIELDS="id"/>
      </KEYS>
    </TABLE>
    <TABLE NAME="groups" COMMENT="таблица, включающая в себя список групп и учебных курсов, на которые подписана соответствующая группа">
      <FIELDS>
        <FIELD NAME="id" TYPE="int" LENGTH="10" NOTNULL="true" SEQUENCE="true"/>
        <FIELD NAME="courseid" TYPE="int" LENGTH="20" NOTNULL="true" SEQUENCE="false"/>
        <FIELD NAME="list_group" TYPE="char" LENGTH="10" NOTNULL="false" SEQUENCE="false" COMMENT="список групп"/>
      </FIELDS>
      <KEYS>
        <KEY NAME="primary" TYPE="primary" FIELDS="id"/>
        <KEY NAME="courseid" TYPE="foreign" FIELDS="courseid" REFTABLE="course" REFFIELDS="id" COMMENT="Внешний ключ для таблицы course"/>
      </KEYS>
    </TABLE>
  </TABLES>
</XMLDB>
  • Вопрос задан
  • 2535 просмотров
Пригласить эксперта
Ответы на вопрос 1
Dunadan
@Dunadan
$xml = simplexml_load_string($xml);
$tables = $xml->TABLES->children();

foreach ($tables as $xmlstr) {
	echo (string)$xmlstr['COMMENT'] ."<br /><hr />";
}


Внимательнее к структуре файла и к регистру нод.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы