我叫 Rithy。
我不知道如何在 xml 中追加新节点或元素之前添加新行。
我的 php:
$dom = new DOMDocument();
$dom->formatOutput = true;
$dom->preserveWhiteSpace = true;
$dom->load($xml_file);
$body = $dom->getElementsByTagName('body')->item(0);
$newelement_seg = $dom->createElement('seg');
$data = $dom->createTextNode(" text 2 ");
$newelement_seg->appendChild($data);
$body->appendChild($newelement_seg);
$dom->save($xml_file);
XML 在追加一个新的 child 之前:
<?xml version="1.0" encoding="UTF-8"?>
<body>
<seg>
text 1
</seg>
</body>
</xml>
追加新 child 后的 XML:
<?xml version="1.0" encoding="UTF-8"?>
<body>
<seg>
text 1
</seg>
<seg>
text 2
</seg>
</body>
</xml>
但我想要:
<?xml version="1.0" encoding="UTF-8"?>
<body>
<seg>
text 1
</seg>
<seg>
text 2
</seg>
</body>
</xml>
<hr/>
提前致谢!
最佳答案
总结给出的答案:
您必须将 formatOutput 设置为 true
你必须将 ignoreWhiteSpace 设置为 false
即:
$dom = new DomDocument();
$dom->formatOutput = true;
$dom->preserveWhiteSpace = false;
$dom->load($myxmlfile);
关于PHP DOM 追加新行的 child ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3155030/