Необходимо использовать DOMDocument для создания книги с загруженными и добавленными главами. Каждая глава будет храниться в отдельном файле xml. Ниже будет создана книга root и добавлен первый дочерний раздел_1. Я понимаю, что «foreach» -l oop никогда не будет загружать никакие другие главы, так как он жестко задан для chapter_1.
Цель состоит в том, чтобы решить проблему с помощью DOMDocument, чтобы позаботиться о правильном переносе тегов. Я знаю, что мог бы в этом случае использовать PHP include для всех глав и включать root в начале и в конце (в качестве оболочки).
Вопрос:
Что мне нужно изменить в for-l oop, чтобы иметь возможность добавлять растущее количество глав? Должен ли я сначала указать массив и выполнить «foreach» -l oop для перебора массива?
Мой код:
Файл: объединить. php
<?php
$book = new DOMDocument();
$book->load('1_build_block_(book).xml');
$chapter_1 = new DOMDocument();
$chapter_1->load('2_build_block_(chapter_1).xml');
$chapter_2 = new DOMDocument();
$chapter_2->load('3_build_block_(chapter_2).xml');
// chapter_3, chapter_4, etc...
/**
* Merge chapters into book.
*/
foreach ($chapter_1->childNodes as $child) {
$book->documentElement->appendChild(
$book->importNode($child, TRUE)
);
}
echo $book->saveXML();
$book->saveHTMLFile("result.xml");
Файл: 1_build_block_ (книга). xml
<book></book>
Файл: 2_build_block_ (chapter_1). xml
<chapter_1></chapter_1>
Файл: 3_build_block_ (chapter_2). xml
<chapter_2></chapter_2>
Результат:
<book>
<chapter_1></chapter_1>
</book>
Требуемый результат:
<book>
<chapter_1></chapter_1>
<chapter_2></chapter_2>
</book>