PHP: Dom nesneyi görüntülenmesi ve xml dosyası oluşturma

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

Ben komut satırında bu kodu çalıştırdığınızda. Ben şu şeyleri alıyorum

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

Ben web tarayıcısında kodu çalıştırdığınızda bana aşağıdaki şeyler veriyor

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

Ben komut satırı çıktısı gibi olmak için yukarıda çıkış istiyorum. Ve bir şey daha yerine görüntüleme, nasıl $ doc Dom nesnesini kullanarak bir xml dosyası oluşturmak olmasıdır.

3 Cevap

Ben doğru olabilir, ama böyle bir başlık göndermeyi deneyin olmayabilir:

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

veya

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

uygun sonuçlar elde etmek. (Tabii ki $doc->saveXML(); çalıştırmadan önce.

Dönüştürmek < ve> htmlspecialchars'dan kurumlara yapılan (http://ua.php.net/manual/en/function.htmlspecialchars.php) ve tarayıcı html olarak ayrıştırmak değil:

echo htmlspecialchars($doc->SaveXml());

Eğer (HTML tercüme) PHP dosyasına XML kodunu çıktılamak vardır çünkü. Kaynak kodu kontrol edin ve istenilen çıktıyı görürsünüz. Eğer komut satırında var gibi aynı şeyi elde etmek istiyorsanız, yeni XML dosya için çıkış kaydetmek gerekir.

fopen yeni bir XML dosyası oluşturmak için kullanın.