0

ルート フォルダーに xml ファイルを出力しようとしています。ファイルは作成されますが、すべての要素とその内容は次のように 1 つの直線で保存されます。

*<?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(); */
?>

誰かが助けてくれれば幸いです。ご覧のとおり、「setIndent」で「preserveWhiteSpace」を使用しましたが、うまくいきません。また、「formatOutput」を使用してみましたが、うまくいきません。私が心配しているのは、ブラウザーでの xml の外観ではなく、実際のファイル (上記の例では firstFile.xml) での外観です。事前に感謝します。

4

1 に答える 1

2

追加する必要があります

$domtree->formatOutput = true;

きれいに印刷したい場合。詳細については、 formatOutputを参照してください。

コメントの1つ(Jochem Blok)では、preserveWhiteSpaceオフにすることをお勧めします

$domtree->preserveWhiteSpace = false;
于 2013-03-09T23:15:48.733 に答える