我使用以下代码使用php
创建xml文件$doc = new DOMDocument('1.0');
$doc->formatOutput = true;
$root = $doc->createElement('alerts');
$root = $doc->appendChild($root);
$alert = $doc->createElement('alert');
$alert = $root->appendChild($alert);
$id = $doc->createElement('id');
$id_text = $doc->createTextNode($api_id);
$id->appendChild($id_text);
$alert->appendChild($id);
$msg_type = $doc->createElement('msg_type');
$msg_type_text = $doc->createTextNode(1);
$msg_type->appendChild($msg_type_text);
$alert->appendChild($msg_type);
$doc->save($filename);
它保存了格式良好的xml文件,如
<?xml version="1.0"?>
<alerts>
<alert>
<id>22</id>
<msg_type>1</msg_type>
</alert>
</alerts>
但是当我使用以下代码在现有文件中附加标签时,它将不会格式化
$doc = new DOMDocument();
$doc->formatOutput = true;
$xml = file_get_contents($filename);
$doc->loadXML($xml);
$root = $doc->firstChild;
$alert = $doc->createElement('alert');
$alert = $root->appendChild($alert);
$id = $doc->createElement('id');
$id_text = $doc->createTextNode($api_id);
$id->appendChild($id_text);
$alert->appendChild($id);
$msg_type = $doc->createElement('msg_type');
$msg_type_text = $doc->createTextNode(1);
$msg_type->appendChild($msg_type_text);
$alert->appendChild($msg_type);
$doc->save($filename);
xml文件格式将是这样的
<alerts>
<alert>
<id>3</id>
<msg_type>1</msg_type>
<msg>Api Name:Loop LM (H-PO) has low credit.</msg>
<url>common/api/view_sms_api_list.php</url>
<status>0</status>
<create_date>1387351877</create_date>
</alert>
<alert><id>6</id><msg_type>1</msg_type></alert><alert><id>14</id><msg_type>1</msg_type></alert><alert><id>24</id><msg_type>1</msg_type></alert></alerts>
当我在此xml文件中附加警告标记时,它将以单行继续。问题是什么? 提前谢谢。
答案 0 :(得分:2)
在加载您的文档$doc->preserveWhiteSpace = false;
$doc->loadXML($xml);