2012-04-18 13 views
2

XMLWriter http://www.php.net/manual/en/book.xmlwriter.phpを使用して、WebクライアントがXMLファイルを作成できるようにしています。PHP XMLWriter、改行を挿入するには?

$xml->startElement('registry-request'); 
$xml->writeAttribute('att1', 'long text'); 
$xml->writeAttribute('att2', 'long text'); 
$xml->writeAttribute('att3', 'long text'); 
$xml->writeAttribute('att4', 'long text'); 

だから、XMLファイル内のその部分は、このようなものになります:どの本物の入力ルックスと

<registry-request att1="long text" att2="long text" att3="long text" att4="long text"> 

をこのように、非常に多くの属性を持つ要素が存在しなければならない初めに かなりひどい。

私はむしろ、このようにそれを持っているでしょう:

<registry-request att1="long text" att2="long text" 
att3="long text" att4="long text"> 

私は誰もがこれを行うにはどのようにアイデアを得た、のXmlWriter php.netのドキュメントで解決策を見つけることができませんでしたか?

$xml->writeAttribute('att2', 'long text\n'); 

のような典型的な改行コマンドを追加するだけです。

ありがとうございました。

+0

一重引用符では\ nを改行しませんが、リテラル出力のように\ n "'を試してください。 –

+1

'XMLWriter'は機械可読コードを生成するように設計されています。このように、このような出力を制御することはできません。出力をきれいに表示する方法が必要な場合は、自分自身を表示する必要があります。または、ディスプレイのフォーマットを可能にするビューアを使用します。 – DaveRandom

+0

残念ながら、XMLWriterでこれを行うには何もできません。 "長いテキスト\ n"を使用してパラメータを操作すると、閉じた二重引用符の前に新しい行が追加され、新しい属性、それはあまりにも美しくないでしょう。 私はXMLWriterがsetIndent()とsetIndentString()だけを持っていると思います。 – Adi

答えて

5

実際には$xml->setIndent(1);がそうです。驚いたことに!

関連する問題