0

可能重复:
PHP XML 如何输出好的格式

我在用这个

<?php

$file = '/Applications/MAMP/htdocs/payback_service/payback_records.xml';

if (file_exists($file)) {
    $sxe = simplexml_load_file($file);  
    $movie = $sxe->addChild('record');
    $movie->addChild('lat', 'PHP2: More Parser Stories');
    $movie->addChild('lng', 'This is all about the people who make it work.');
    $movie->addChild('address', 'PHP2: More Parser Stories');
    $movie->addChild('picture_link', 'PHP2: More Parser Stories');
    $movie->addChild('message', 'PHP2: More Parser Stories');
    $sxe->asXML($file);


} else {
    exit('Failed to open '.$file);
}

我希望以格式化的形式更新 xml 的文本。

现在我得到这个:

<record><lat>PHP2: More Parser Stories</lat><lng>This is all about the people who make it work.</lng><address>PHP2: More Parser Stories</address><picture_link>PHP2: More Parser Stories</picture_link><message>PHP2: More Parser Stories</message></record><record><lat>PHP2: More Parser Stories</lat><lng>This is all about the people who make it work.</lng><address>PHP2: More Parser Stories</address><picture_link>PHP2: More Parser Stories</picture_link><message>PHP2: More Parser Stories</message></record></root>

我需要文件是这样的:

<record>
    <lat>1.5</lat>
    <lng>-8.5</lng>
    <address>this is the address</address>
    <picture_link>this is picture link</picture_link>
    <message>this is the message</message>
</record>
<record>
    <lat>1.5</lat>
    <lng>0.248</lng>
    <address>PHP2: More Parser Stories</address>
    <picture_link>PHP2: More Parser Stories</picture_link>
    <message>PHP2: More Parser Stories</message>
</record>
4

1 回答 1

1

我不认为 SimpleXML 支持格式化。但是DOMDocument 类会:

<?php

$file = '/Applications/MAMP/htdocs/payback_service/payback_records.xml';

if (file_exists($file)) {
    $sxe = simplexml_load_file($file);  
    $movie = $sxe->addChild('record');
    $movie->addChild('lat', 'PHP2: More Parser Stories');
    $movie->addChild('lng', 'This is all about the people who make it work.');
    $movie->addChild('address', 'PHP2: More Parser Stories');
    $movie->addChild('picture_link', 'PHP2: More Parser Stories');
    $movie->addChild('message', 'PHP2: More Parser Stories');

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

} else {
    exit('Failed to open '.$file);
}
于 2013-01-28T09:54:09.020 回答