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