我想在存储在磁盘上的XML文件中添加一个新节点。这部分没问题,我已经解决了:
$xml = new DOMDocument("1.0", "ISO-8859-1");
$xml->preserveWhiteSpace = FALSE;
$xml->formatOutput = TRUE;
$xml->load($fichier);
...
$rootTag->insertBefore($annonce,$rootTag->firstChild);
$xml->save($fichier);
初始XML:
<genevecrb>
<annonce id="149">
<flagplus/>
<entete>GENEVE</entete>
<nouveau>1</nouveau>
<description>EN EXCLUSIVITÉ SUPERBE RESTAURANT EN SA</description>
<couleur>R</couleur>
<detail>90 places intérieur et TERRASSE privative de 80 places<br/>
CA 1'500'000.--<br/>
PV sur demande et sur rdv. Possibilité de crédit si 70% fonds propres (env. 530'000.--)<br/>
Hyper opérationnel et entièrement refait à neuf. Bail 10 années renouvelable de 10 années.<br/>
Loyer 5'100.-- avec parkings et chauffage.<br/>
Dossier confidentiel.
</detail>
<autre/>
<contact>Pour tout renseignement nous contacter</contact>
<vente>REMIS</vente>
</annonce>
添加新节点后:
<genevecrb><annonce id="150"><flagplus/><entete>Ceci est un message</entete><nouveau/><description>Le message de description</description><couleur/><detail>Le bla bla bla</detail><autre>Autre r&eacute;sine</autre><contact>Contact</contact><vente>Vente</vente></annonce>
<annonce id="149">
<flagplus/>
<entete>GENEVE</entete>
<nouveau>1</nouveau>
<description>EN EXCLUSIVITÉ SUPERBE RESTAURANT EN SA</description>
<couleur>R</couleur>
<detail>90 places intérieur et TERRASSE privative de 80 places<br/>
CA 1'500'000.--<br/>
PV sur demande et sur rdv. Possibilité de crédit si 70% fonds propres (env. 530'000.--)<br/>
Hyper opérationnel et entièrement refait à neuf. Bail 10 années renouvelable de 10 années.<br/>
Loyer 5'100.-- avec parkings et chauffage.<br/>
Dossier confidentiel.
</detail>
<autre/>
<contact>Pour tout renseignement nous contacter</contact>
<vente>REMIS</vente>
</annonce>
新节点是内联的而不是缩进的。 PreserveWhiteSpace和formatOutput不起作用。 我怎么能缩进呢?有什么想法吗?
答案 0 :(得分:0)
XML是图的抽象。根据您使用的API,像制表符和换行符这样的空格实际上可以视为TextNode
。如果你将空格与元素混合在一起,那就是XML中的含义,但如果它不是文本的一部分,一些解析器会忽略空格。这会造成元素之间没有文字的印象。
那说你的缩进来自你没有添加的其他节点 - 你不应该,真的。使用库的“漂亮打印”功能来保存文档,或者在保存文件后在文件上运行格式化程序。