Это правильное форматирование XML для разбора PHP? - PullRequest
0 голосов
/ 10 февраля 2012

Правильно ли следующий формат для XML?Я пытаюсь проанализировать файл в PHP, используя simplexml_load_file, но получаю сообщение об ошибке, в котором говорится, что в конце документа есть «Дополнительный контент в строке 3».

Вот файл XML:

<?xml version="1.0"?>
  <title>Test File</title>
  <data>
    <record id="1">
      <department>
        <name>ACME</name>
        <number>5</number>
      </dep_name>
      <floor>
        <name>ACME Floor</name>
        <number>5</number>
      </floor>
    </record>
  </data>

Ответы [ 2 ]

6 голосов
/ 10 февраля 2012

XML-документ должен состоять из одного корневого элемента и его потомков.

Ваш первый стартовый тег - <title>. Он имеет текстовый узел в качестве единственного потомка. Затем у вас есть тег </title>, который завершает корневой элемент и, следовательно, документ.

<data> и все, что следует за ним, является ошибкой.

Возможно, вы захотите создать новый тип элемента, который будет корневым (и обернуть им весь документ, за исключением объявления XML).

Вам также необходимо исправить либо <department>, либо </dep_name>, поскольку вы, по-видимому, изменили имя элемента на полпути после его создания.

Вы должны запустить свой код через валидатор или lint , так как это выделит ошибки.

2 голосов
/ 10 февраля 2012

вам нужен корень для вашей структуры:

<?xml version="1.0"?>
<xml>
    <title>Test File</title>
    <data>
        <record id="1">
            <department>
                <name>ACME</name>
                <number>5</number>
            </department>
            <floor>
                <name>ACME Floor</name>
                <number>5</number>
            </floor>
        </record>
    </data>
</xml>

, иначе ваш XML-парсер будет считать, что ваш корень <title> и что в нем содержится вся ваша информация.

Кроме того, <department> необходимо закрыть на </department>, что отражено в моем ответе.

...