2010-05-21 34 views
2
<?php            

    $books = array(); 
    $books [] = array(
    'title' => 'PHP Hacks', 
    'author' => 'Jack Herrington', 
    'publisher' => "O'Reilly"  
);        
    $books [] = array(   
    'title' => 'Podcasting Hacks', 
    'author' => 'Jack Herrington', 
    'publisher' => "O'Reilly"  
);        

    $doc = new DOMDocument();  
    $doc->formatOutput = true;  
    $r = $doc->createElement("books"); 
    $doc->appendChild($r);    
    foreach($books as $book)   
    {         
    $b = $doc->createElement("book"); 

    $author = $doc->createElement("author"); 
    $author->appendChild(
    $doc->createTextNode($book['author']) 
); 
    #$author->appendChild($doc->createTextNode('pavunkumar')); 
    $new = $doc->createElement("Developer"); 
    $a=$doc->createTextNode('I am developer '); 
    $new->appendChild($a); 
    $b->appendChild($author); 
    $b->appendChild($new); 
    $b->appendChild($new); 
    $title = $doc->createElement("title"); 
    $title->appendChild(
    $doc->createTextNode($book['title']) 
); 
    $b->appendChild($title); 
    $publisher = $doc->createElement("publisher"); 
    $publisher->appendChild(
    $doc->createTextNode($book['publisher']) 
); 
    $b->appendChild($publisher); 

    $r->appendChild($b); 
    } 
    echo $doc->SaveXml() ; 
    ?> 

当我在命令行中运行此代码。我得到下面的东西PHP:显示Dom对象和创建xml文件

<?xml version="1.0"?> 
<books> 
    <book> 
    <author>Jack Herrington</author> 
    <Developer>I am developer </Developer> 
    <title>PHP Hacks</title> 
    <publisher>O'Reilly</publisher> 
    </book> 
    <book> 
    <author>Jack Herrington</author> 
    <Developer>I am developer </Developer> 
    <title>Podcasting Hacks</title> 
    <publisher>O'Reilly</publisher> 
    </book> 
</books> 

当我在Web浏览器中运行的代码它给我下面的事情

Jack Herrington I am developer O'Reilly Jack Herrington I am developer O'Reilly 

我想上面的输出是一样的命令行输出。还有一件事是,不是显示,我怎么能使用$ doc Dom对象创建一个xml文件。

回答

1

我可能是不正确的,但尝试发送一个头这样的:

Header("Content-Type: text/xml"); 

Header("Content-Type: text/plain"); 

取得相应的结果。 (当然之前运行$doc->saveXML();

0

这是因为您将XML代码输出到PHP文件(被翻译成HTML)。检查你的源代码,你会看到所需的输出。如果您希望获得与命令行相同的内容,则必须将输出保存到新的XML文件中。使用fopen创建新的XML文件。