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

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

WBOY
Freigeben: 2016-06-01 12:35:03
Original
802 Leute haben es durchsucht

  /**

  * 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() )."
Nach dem Login kopieren
" ); 



  // 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
Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage