dom|xml|创建<?php 
/** 
* Topic: Create and parse XML files using PHP DOM-XML 
* Source: http://www.php.net/domxml 
* Reference: http://www.zugeschaut-und-mitgebaut.de/php/extension.domxml.html 
* Author: urscircle.ch, 16-1-2001 
* 
*/ 
// 使用PHP DOM-XML创建和解析XML文件 
//创建XML文档对象;以后的处理过程将在此基础上进行 
$doc = new_xmldoc("1.0" ); 
//创建根节点,并设置一个属性 
$root = $doc->add_root("faq" ); 
$root->setattr("page", "32" ); 
//子节点 
$one = $root->new_child("question", ""); 
//为子节点设置属性 
$one->setattr("number", "1"); 
//question也创建子节点,并且给它赋值 
$one->new_child("text", "1. Where to get libxml-2.0.0?"); 
$one->new_child("answer", "You can download the latest 
release of libxml either as a source archive or 
RPM package from http://www.xmlsoft.org. 
The current version is libxml2-2.2.1." ); 
$two = $root->new_child("question", "" ); 
$two->setattr("number", "2"); 
$two->new_child("text", "2. How to configure PHP4?" ); 
// 创建一个不直接赋值的节点 
$twoone = $two->new_child("answer", ""); 
// 然后给它单独赋值 
$twoone->set_content("DIR is the libxml install directory 
(if you just use --with-dom it defaults 
to /usr), I needed to use --with-dom=/usr/local" ); 
$three = $root->new_child("question", "" ); 
$three->setattr("number", "7" ); 
$three->new_child("text", "7. How to use DOM XML function ?" ); 
$three->new_child("answer", "Read this document source for 
a simple example." ); 
//输出到Browser 
print("<pre>".htmlspecialchars($doc->dumpmem() )."</pre>" ); 
// write to file 
//写回到文件 
$fp = fopen("test_dom.xml", "w+" ); 
fwrite($fp, $doc->dumpmem(), strlen($doc->dumpmem() )); 
fclose($fp); 
// ------------------------------------------------------ 
//现在使用xpath从XML文档中得到内容 
$doc = xmldoc(join("", file("test_dom.xml")) ); 
$ctx = xpath_new_context($doc ); 
//所有对象 
$foo = xpath_eval($ctx, "//child::*"); 
print_r($foo); 
print("<br/><br/>"); 
//text node 对象 
$foo = xpath_eval($ctx, "//text"); 
print_r($foo); 
print("<br/><br/>"); 
// 第一个text node对象 
$foo = xpath_eval($ctx, "//text[1]"); 
print_r($foo); 
print("<br/><br/>"); 
// 第二个text node对象 
$foo = xpath_eval($ctx, "//text[2]"); 
print_r($foo); 
print("<br/><br/>"); 
// 第三个answer对象 
$foo = xpath_eval($ctx, "//answer[3]"); 
print_r($foo); 
print("<br/><br/>"); 
//第三个text node的类型,名称和内容 
$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); 
?> 
需要说明,PHP DOM 只能在PHP PHP4.0.x + linux上运行                   
使用PHP DOM-XML创建和解析XML文件
                    80酷酷网    80kuku.com 
       
  
 
 
  
