<?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: [email protected], 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);  ?>

解决方案 »

  1.   

    这个文章有点老了,你可以到Google搜索一下最新的文章
      

  2.   

    http://expert.csdn.net/Expert/TopicView1.asp?id=1597294
      

  3.   


    我写的用 sax 处理 xml 的 类,欢迎指教~~~~~~http://www.mbavoice.net/windy/xml/xml 源文件:
    http://www.mbavoice.net/windy/xml/template/classic.xml测试用页面,请自觉不要删除根节点!要删,可以先建立新的节点!!!!
      

  4.   

    这里将的也很清楚了: http://cn.php.net/xml