<?php

##################################################################
##                    re-Autor Vipmaster                        ##
##                email vipmaster@ewdesign.com.br               ##
##  Copyright VIPMASTER, todos os direitos reservados ao autor. ##
##################################################################

  // crie a instru��o processando do xml 
  $doc = new_xmldoc("1.0" );  

  // ajustar o DOCTYPE n�o � executado ainda, mas seguir� esperan�osamente logo;)
  //$doc->setdtd("<!DOCTYPE faq SYSTEM \"test_dom.dtd\">"); 

  // crie uma raiz e ajuste um atributo 
  $root = $doc->add_root("faq" );  
  $root->setattr("page", "32" );  

  // cr�e child 
  $one = $root->new_child("question", "");  
  // ajuste um atributo ao child 
  $one->setattr("number", "1");  
  // crie um child e adicione o �ndice
  $one->new_child("text", "1. Aonde come�ar libxml-2.0.0?");  
  $one->new_child("answer", "Voc� pode abaixar a libera��o.A mais atrasada do libxml como um arquivo ou pacote do RPM de http://www.xmlsoft.org. da fonte  A vers�o atual � libxml2-2.2.1." );  

  $two = $root->new_child("question", "" );  
  $two->setattr("number", "2");  
  $two->new_child("text", "2. Como configurar PHP4?" );  
  // crie um child sem diretamente adicionar o �ndice
  $twoone = $two->new_child("answer", "");  
  // adicione o �ndice para este aqui 
  $twoone->set_content("DIR � o libxml instala o diret�rio (se voc� uso justo -- com-dom ele opta por/usr), mim necessitou se usar -- with-dom=/usr/local" );  

  $three = $root->new_child("question", "" );  
  $three->setattr("number", "7" );  
  $three->new_child("text", "7. Como usar a fun��o de DOM XML ?" );  
  $three->new_child("answer", "Leia esta fonte do original para um exemplo simples." );  

  // c�pia ao browser
  print("<pre>".htmlspecialchars($doc->dumpmem() )."</pre>" );  

  // escreva o arquivo
  $fp = fopen("test_dom.xml", "w+" );  
  fwrite($fp, $doc->dumpmem(), strlen($doc->dumpmem() ));  
  fclose($fp);  

  // ------------------------------------------------------ 
  // comece agora os �ndices traseiros dos n�s dos originais do xml 
  // usando o xpath, que deve trabalhar com PHP 4.0.4 
  $doc = xmldoc(join("", file("test_dom.xml")) );  
  $ctx = xpath_new_context($doc );  

  // mostre todos os objetos
  $foo = xpath_eval($ctx, "//child::*");  
  print_r($foo);  
  print("<br/><br/>");  
  // mostre o objeto do n� do texto 
  $foo = xpath_eval($ctx, "//text");  
  print_r($foo);  
  print("<br/><br/>");  
  // mostre o objeto do primeiro n� do texto
  $foo = xpath_eval($ctx, "//text[1]");  
  print_r($foo);  
  print("<br/><br/>");  
  // mostre o objeto do segundo n� do texto 
  $foo = xpath_eval($ctx, "//text[2]");  
  print_r($foo);  
  print("<br/><br/>");  
  // mostre o objeto do terceiro n� da resposta 
  $foo = xpath_eval($ctx, "//answer[3]");  
  print_r($foo);  
  print("<br/><br/>");  

  // ------------------------------------------------------ 
  // comece o tipo, o nome e o �ndice do terceiro n� do texto 
  $foo = xpath_eval($ctx, "//text[3]");  
  $tmp = $foo->nodeset;  
  print_r($tmp);  
  print("<br/>");  
  print($tmp[0]->type) . "; ";  
  print($tmp[0]->name) . "; ";  
  print($tmp[0]->content);  

?>