如何在标记xml之前和之后进行下行


How can I down line before tag xml and after

  1. 在将标记xml <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>测试1test2`

<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>

formatOutput在加载已创建的DOM文档时不起作用。通常通过load*()方法分组。但如果你创造了它,它会起作用的。

您可以使用regex来完成此操作。幸运的是,有人已经做到了。

XML用于数据交换。如果您能够生成一个有效的xml文档,并且其他方能够读取它,那么它的目的就达到了。新行、空格被完全忽略。因此,您所调用的坏xml一点也不坏。完全可以。