2012-02-15 67 views
1
  1. 我怎样才能将标签xml <newWord>正确的地方写下来?和标签<Heb>

我的代码重写XML文件中,当他加入他的数据添加到第一线的所有,他从爵士得到的数据和该行之前会很长到很大。我怎样才能在标签xml之前和之后

我的代码:

<?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(); 

?> 

坏resualt是:

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

好resualt是:

<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

请添加当前结果的示例和预期结果的示例。 – VolkerK 2012-02-15 08:33:45

回答

1

formatOutput加载一个已经创建的DOM文档时不起作用。通常通过load*()方法组。但是,如果你创建它,它会工作。

你可以使用正则表达式。幸运的是someone has done it已经。

XML用于数据交换。如果您可以生成有效的xml文档并且其他方可以读取它,则会提供其用途。新的线条,空格被完全忽略。所以你打电话不好的xml根本就不好。它完全没问题。

+0

我需要订单。 – 2012-02-15 08:54:20

+0

@ centerwow.com更新我的答案 – 2012-02-15 09:02:58