$ SimpleXML-> asXML () formatı çıkışı;

2 Cevap php

Possible Duplicate:
PHP simpleXML how to save the file in a formatted way?

Edit Yes, this is a duplicate. Voted to close. - Eli

Tüm Merhaba

Başlık hemen hemen tüm diyor.

Ben (php sitesi örneklerinden) gibi bir şey varsa:

 $xmlstr = <<<XML
<?xml version='1.0' standalone='yes'?>
<movies></movies>
XML;

$sxe = new SimpleXMLElement($xmlstr);

$sxe->addAttribute('type', 'documentary');

$movie = $sxe->addChild('movie');
$movie->addChild('title', 'PHP2: More Parser Stories');
$movie->addChild('plot', 'This is all about the people who make it work.');

$characters = $movie->addChild('characters');
$character  = $characters->addChild('character');
$character->addChild('name', 'Mr. Parser');
$character->addChild('actor', 'John Doe');

$rating = $movie->addChild('rating', '5');
$rating->addAttribute('type', 'stars');


echo("<pre>".htmlspecialchars($sxe->asXML())."</pre>");

die();

Ben bu kadar gibi uzun bir dize çıktılamak sonuna kadar:

<?xml version="1.0" standalone="yes"?>
<movies type="documentary"><movie><title>PHP2: More Parser Stories</title><plot>This is all about the people who make it work.</plot><characters><character><name>Mr. Parser</name><actor>John Doe</actor></character></characters><rating type="stars">5</rating></movie></movies>

Bu, bir program tüketici için iyi, ama hata ayıklama / insan görevler için, herkes bir güzel girintili biçime bu nasıl biliyor?

2 Cevap

Çözümleri çeşitli PHP manual page for SimpleXMLElement üzerine yorumlarda var. Çok etkili, ama kesinlikle veciz değil, Anonymous tarafından bir çözümdür

$dom = dom_import_simplexml($simpleXml)->ownerDocument;
$dom->formatOutput = true;
echo $dom->saveXML();

PHP kılavuzu sayfa comments sürece ilk patentli yanlış şeyler filtre gibi, sık sık ortak ihtiyaçları için iyi kaynaklardır.

Yukarıdaki benim için işe yaramadı, ben bu çalıştı bulundu:

$dom = new DOMDocument("1.0");
$dom->preserveWhiteSpace = false;
$dom->formatOutput = true;
$dom->loadXML($simpleXml->asXML());
echo $dom->saveXML();