Maison >développement back-end >tutoriel php >Résumé des méthodes courantes de lecture XML dans les astuces php_php

Résumé des méthodes courantes de lecture XML dans les astuces php_php

墨辰丷
墨辰丷original
2018-05-23 15:03:081554parcourir

Cet article présente principalement les méthodes courantes de lecture de XML en PHP et résume les compétences opérationnelles associées de PHP dans la lecture de fichiers XML basés sur DOMDocument, simplexml, regular et xmlreader sous forme d'exemples. Les amis dans le besoin peuvent s'y référer.

fichier source XML

<?xml version="1.0 encoding="UTF-8"?>
<humans>
   <zhangying>
     <name>张映</name>
     <sex>男</sex>
     <old>28</old>
   </zhangying>
   <tank>
     <name>tank</name>
     <sex>男</sex>
     <old>28</old>
   </tank>
</humans>

1)DOMDocumentlire XML

<?php
   $doc = new DOMDocument();
   $doc->load(&#39;person.xml&#39;); //读取xml文件
   $humans = $doc->getElementsByTagName( "humans" ); //取得humans标签的对象数组
   foreach( $humans as $human )
   {
     $names = $human->getElementsByTagName( "name" ); //取得name的标签的对象数组
     $name = $names->item(0)->nodeValue; //取得node中的值,如<name> </name>
     $sexs = $human->getElementsByTagName( "sex" );
     $sex = $sexs->item(0)->nodeValue;
     $olds = $human->getElementsByTagName( "old" );
     $old = $olds->item(0)->nodeValue;
     echo "$name - $sex - $old\n";
   }
?>

2)simplexmlLire XML

<?php
   $xml_array=simplexml_load_file(&#39;person.xml&#39;); //将XML中的数据,读取到数组对象中
   foreach($xml_array as $tmp){
     echo $tmp->name."-".$tmp->sex."-".$tmp->old."<br>";
   }
?>

3) Utiliser phpExpression régulière pour lire les données

<?php
   $xml = "";
   $f = fopen(&#39;person.xml&#39;, &#39;r&#39;);
   while( $data = fread( $f, 4096 ) ) {
     $xml .= $data;
   }
   fclose( $f );
   // 上面读取数据
   preg_match_all( "/\<humans\>(.*?)\<\/humans\>/s", $xml, $humans ); //匹配最外层标签里面的内容
   foreach( $humans[1] as $k=>$human )
   {
     preg_match_all( "/\<name\>(.*?)\<\/name\>/", $human, $name ); //匹配出名字
     preg_match_all( "/\<sex\>(.*?)\<\/sex\>/", $human, $sex ); //匹配出性别
     preg_match_all( "/\<old\>(.*?)\<\/old\>/", $human, $old ); //匹配出年龄
   }
   foreach($name[1] as $key=>$val){
     echo $val." - ".$sex[$key][1]." - ".$old[$key][1]."<br>" ;
   }
?>

4)xmlreader pour lire les données XML

<?php
   $reader = new XMLReader();
   $reader->open(&#39;person.xml&#39;); //读取xml数据
   $i=1;
   while ($reader->read()) { //是否读取
     if ($reader->nodeType == XMLReader::TEXT) { //判断node类型
       if($i%3) {
         echo $reader->value; //取得node的值
       } else {
         echo $reader->value."<br>" ;
       }
       $i++;
     }
   }
?>

Ce qui précède représente l'intégralité du contenu de cet article, j'espère qu'il sera utile à l'étude de chacun.


Recommandations associées :

PHPImplémentation d'une instance complète de la classe de base Model basée sur les astuces mysqli_php

PHPExplication détaillée des exemples de classe de téléchargement de fichiers_php compétences

PHPSûr télécharger le fichier method_php skills

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn