Home > Backend Development > PHP Tutorial > 使用PHPDOM-XML创建和解析XML文件sdyqingdao(翻译)_PHP

使用PHPDOM-XML创建和解析XML文件sdyqingdao(翻译)_PHP

WBOY
Release: 2016-06-01 12:35:03
Original
803 people have browsed it

  /**

  * 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:      urs@circle.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("
".htmlspecialchars($doc->dumpmem() )."
Copy after login
" ); 



  // 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("

"); 

  //text node 对象

  $foo = xpath_eval($ctx, "//text"); 

  print_r($foo); 

  print("

"); 

  // 第一个text node对象

  $foo = xpath_eval($ctx, "//text[1]"); 

  print_r($foo); 

  print("

"); 

  // 第二个text node对象

  $foo = xpath_eval($ctx, "//text[2]"); 

  print_r($foo); 

  print("

"); 

  // 第三个answer对象

  $foo = xpath_eval($ctx, "//answer[3]"); 

  print_r($foo); 

  print("

"); 



  //第三个text node的类型,名称和内容

  $foo = xpath_eval($ctx, "//text[3]"); 

  $tmp = $foo->nodeset; 

  print_r($tmp); 

  print("
"); 

  print($tmp[0]->type) . "; "; 

  print($tmp[0]->name) . "; "; 

  print($tmp[0]->content); 



?> 



需要说明
PHP DOM 只能在PHP  PHP4.0.x + linux上运行



PHPDOM类库请到http
://www.zend.com/download
Related labels:
source:php.cn
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template