Я пытаюсь вывести xml-файл в свою корневую папку. Файл создается, но все элементы и их содержимое сохраняются в одну прямую вот так:
*<?xml version="1.0" encoding="UTF-8"?> <letterA> <lemma> <word>word1</word> <textfiles>title of file</textfiles> <videofiles>video.mp3</videofiles> </lemma>
* Но я хочу что-то вроде этого:
<?xml version="1.0" encoding="UTF-8"?>
<letterA>
<lemma>
<word>song1.mp3</word>
<textfiles>title of file</textfiles>
<videofiles>video.mp3</videofiles>
</lemma>
</letterA>
Вот мой код:
<?php
/* create a dom document with encoding utf8 */
$domtree = new DOMDocument('1.0', 'UTF-8');
$domtree->preserveWhiteSpace = true;
$domtree->setIndent = (1);
/* $domtree->formatOutput = (true); */
/* create the root element of the xml tree */
$letterARoot = $domtree->createElement("letterA");
/* append it to the document created */
$letterARoot = $domtree->appendChild($letterARoot);
$alemma = $domtree->createElement("lemma");
$alemma = $letterARoot->appendChild($alemma);
/* you should enclose the following two lines in a cicle */
$alemma->appendChild($domtree->createElement('word','word1));
$alemma->appendChild($domtree->createElement('textfiles','title of file'));
$alemma->appendChild($domtree->createElement('videofiles','video.mp3'));
/* save the file in my root folder */
$domtree->save("firstFile.xml") or die("Error");
/* get the xml printed */
/* echo $domtree->saveXML(); */
?>
Я был бы признателен, если бы кто-то мог помочь. Как видите, я использовал «preserveWhiteSpace» с «setIndent», но это не помогло. Я также попытался снова использовать «formatOutput». Меня беспокоит не внешний вид моего xml в браузере, а его внешний вид в реальном файле (а именно, firstFile.xml в моем примере выше). Спасибо заранее.
$domtree->setIndent
ложь. Вы просто добавляете в класс общедоступное свойство, которое просто несет значение. Если вы хотите изменить отступ, вы можете сделать это с регулярным выражением, как описано здесь: Преобразование отступа с помощью preg_replace (без обратного вызова) - person hakre   schedule 10.03.2013