<newWord>
写入正确位置之前,我该如何下线?在标记<Heb>
我的代码重写了xml文件,当他添加数据时,他添加到第一行,他从js获得的所有数据和这一行的长度都很大。
我的代码:
<?php
$wordH=$_GET['varHeb'];
$wordE=$_GET['varEng'];
$new_line = "\n";
$doc='';
if(!$doc)
{
$doc = new DOMDocument();
// we want a nice output
$doc->formatOutput = true;
$doc->load('Dictionary_user.xml');
}
$Dictionary_user = $doc->documentElement;
$newWord = $doc->createElement('newWord');
CHARSET=windows-1255"');
$prop = $doc->createElement('Heb', $wordH);
$newWord->appendChild($prop);
$prop = $doc->createElement('Eng',$wordE);
$newWord->appendChild($prop);
$Dictionary_user->childNodes->item(0)->parentNode->insertBefore($newWord,$Dictionary_user->childNodes->item(0));
header("Content-type: text/xml");
$doc->save("Dictionary_user.xml");
echo $doc->saveXML();
?>
糟糕的结果是:
<?xml version="1.0" encoding="UTF-8"?>
<Favorite_Word xml:lang="EN"><newWord><Heb>test1</Heb><Eng>test2</Eng></newWord><newWord><Heb>test1</Heb><Eng>test2</Eng></newWord><newWord><Heb>test1</Heb><Eng>test2</Eng></newWord>
test1test2`
<newWord>
<Heb>cow</Heb>
<Eng>Co</Eng>
</newWord>
<newWord>
<Heb>Camel</Heb>
<Eng>Ca</Eng>
</newWord>
<newWord>
<Heb>Bull</Heb>
<Eng>BUl</Eng>
</newWord>
好的结果是:
<Favorite_Word xml:lang="EN">
<newWord>
<Heb>test1</Heb>
<Eng>test2</Eng>
</newWord>
<newWord>
<Heb>cow</Heb>
<Eng>Co</Eng>
</newWord>
<newWord>
<Heb>Camel</Heb>
<Eng>Ca</Eng>
</newWord>
<newWord>
<Heb>Bull</Heb>
<Eng>BUl</Eng>
</newWord>
答案 0 :(得分:1)
formatOutput
不起作用。通常通过load*()
方法组。但是如果你创造它,它就会起作用。
您可以使用正则表达式执行此操作。幸运的是someone has done it已经。
XML用于数据交换。如果您可以生成有效的xml文档而其他方可以阅读它,则会提供其用途。新线条,空格完全被忽略。所以你称之为坏的xml并不是坏的。它完全没问题。